python中字符串自动拼接的示例代码

 更新时间:2025年12月26日 08:58:08   作者:atwdy  
本文主要介绍了python中字符串自动拼接的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

python中的字符串自动拼接发生在编译成字节码的时期,只会对字符串字面量进行自动拼接。

  • 对于同一行:相邻字符串字面量之间如果只包含空格,会自动拼接为一个整体对待。
  • 对于不同行:需要在外侧用括号表明是一个整体,python才会自动拼接。不带括号时换行会当作不同的字符串。

1.背景

在用下面正则判断输入地址是否属于仅行政区划地址时:

import re

XZQH_PATTERN = r"^[^省市区县村路街乡0-9a-zA-Z]+省$|"
r"^(?!.*[一二三四五六七八九十]门市$)[^区县村路街乡]*[^超小鱼0-9a-zA-Z]市$|"
r"^[^县镇区村路街乡]*[^小景胜假务东西南北中社业发港住车游护园校舍活墅工0-9a-zA-Z一二三四五六七八九十]区$|"
r"县$"


def process_one(address: str):
    """
    判断单条地址是否仅包含行政区划
    :param address:
    :return: 是:True  否:False
    """
    if re.search("自治区", address):
        address = re.sub("自治区", "省", address)
    return re.search(XZQH_PATTERN, address)


if __name__ == '__main__':
    print(process_one("xx小区"))  # <re.Match object; span=(0, 0), match=''>

正则中前已经排除不能为,但是正则的匹配结果返回了空字符串,相当于命中了上面的正则返回了True,不符合匹配预期。

排查发现原因在于python的字符串自动拼接规则,因为字符串换行且未用()包裹,所以上面的正则匹配串实际上只有 ^[^省市区县村路街乡0-9a-zA-Z]+省$|是有效的。

因为|后面是空,测试case没有匹配省结尾,但会匹配后面分支的空字符串,所以结果才会是 <re.Match object; span=(0, 0), match=''> 。而对于Match对象,除了None会被解释为False,其余的任何匹配即使是空字符串也会被解释为True。因此误报。

加括号后匹配符合预期:

import re

XZQH_PATTERN = (r"^[^省市区县村路街乡0-9a-zA-Z]+省$|"
                r"^(?!.*[一二三四五六七八九十]门市$)[^区县村路街乡]*[^超小鱼0-9a-zA-Z]市$|"
                r"^[^县镇区村路街乡]*[^小景胜假务东西南北中社业发港住车游护园校舍活墅工0-9a-zA-Z一二三四五六七八九十]区$|"
                r"县$")


def process_one(address: str):
    """
    判断单条地址是否仅包含行政区划
    :param address:
    :return: 是:True  否:False
    """
    if re.search("自治区", address):
        address = re.sub("自治区", "省", address)
    return re.search(XZQH_PATTERN, address)


if __name__ == '__main__':
    print(process_one("xx小区"))  # None

2.验证

s1 = 'a' 'b' 'c'

s2 = ('a' 'c'
      'b')

s3 = 'a' 'c'
'b'

print(f's1: {s1}')
print(f's2: {s2}')
print(f's3: {s3}')

# s1: abc
# s2: acb
# s3: ac

到此这篇关于python中字符串自动拼接的示例代码的文章就介绍到这了,更多相关python 字符串自动拼接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用Python对哥德巴赫猜想进行检验和推理

    利用Python对哥德巴赫猜想进行检验和推理

    数学是一个奇妙的东西,对此,也衍生出了许多的悖论与猜想。这篇文章会对哥德巴赫猜想用编程语言进行检验和推理,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-12-12
  • pandas.DataFrame删除/选取含有特定数值的行或列实例

    pandas.DataFrame删除/选取含有特定数值的行或列实例

    今天小编就为大家分享一篇pandas.DataFrame删除/选取含有特定数值的行或列实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python实现视频下载功能

    Python实现视频下载功能

    最近一两年短视频业务风生水起,各个视频网站都有各自特色的短视频内容。如果有一个程序可以把各大视频网站的热门用户最新发布的视频下载下来,不仅方便了观看,还可以将没有版权的视频发布在个人社交网站上,增加自己的人气,多好呀
    2017-03-03
  • windows系统下Boost.Python的配置和使用方法(新手教学)

    windows系统下Boost.Python的配置和使用方法(新手教学)

    Boost.Python是Boost库的一部分,Boost库本身包含了许多其他有用的库,这篇文章主要介绍了windows系统下Boost.Python的配置和使用方法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-01-01
  • Python使用sql语句对mysql数据库多条件模糊查询的思路详解

    Python使用sql语句对mysql数据库多条件模糊查询的思路详解

    这篇文章主要介绍了Python使用sql语句对mysql数据库多条件模糊查询的思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Python制作脚本帮女朋友抢购清空购物车

    Python制作脚本帮女朋友抢购清空购物车

    这篇文章主要介绍了Python制作的抢购清空购物车的脚本,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • 使用python检查yaml配置文件是否符合要求

    使用python检查yaml配置文件是否符合要求

    这篇文章主要介绍了使用python检查yaml配置文件是否符合要求,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python编程Flask框架简单使用教程

    python编程Flask框架简单使用教程

    这篇文章主要为大家介绍了python编程中Flask框架简单使用教程,有需要的朋友可以借鉴参考下希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-11-11
  • 详解Python迭代和迭代器

    详解Python迭代和迭代器

    这篇文章主要为大家详细介绍了Python迭代和迭代器,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • 基于Python实现简单的定时器详解

    基于Python实现简单的定时器详解

    所谓定时器,是指间隔特定时间执行特定任务的机制。几乎所有的编程语言,都有定时器的实现。这篇文章主要介绍的是通过Python实现的定时器,感兴趣的可以跟随小编学习一下
    2021-12-12

最新评论