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+Pyecharts实现散点图的绘制

    Python+Pyecharts实现散点图的绘制

    散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。本文将利用Python Pyecharts实现散点图的绘制,需要的可以参考一下
    2022-06-06
  • Python安装Bs4的多种方法

    Python安装Bs4的多种方法

    这篇文章主要介绍了Python安装Bs4几种方法,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Django中template for如何使用方法

    Django中template for如何使用方法

    这篇文章主要介绍了Django中template for如何使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Python使用Flask结合DeepSeek开发(实现代码)

    Python使用Flask结合DeepSeek开发(实现代码)

    文章介绍了如何使用ollama部署DeepSeek大模型,并通过Python Flask和SSE技术实现一个简单的对话应用,代码实现了模型的调用和结果展示,并讨论了SSE不支持POST请求的问题及解决方案,感兴趣的朋友一起看看吧
    2025-02-02
  • python3.7简单的爬虫实例详解

    python3.7简单的爬虫实例详解

    这篇文章主要介绍了python3.7简单的爬虫实例代码,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • python 标准库原理与用法详解之os.path篇

    python 标准库原理与用法详解之os.path篇

    os.path模块主要用于文件的属性获取,在编程中经常用到,本文将带你熟悉这个模块并掌握它的用法,感兴趣的朋友跟小编来看看吧
    2021-10-10
  • python遍历路径破解表单的示例

    python遍历路径破解表单的示例

    这篇文章主要介绍了python遍历路径破解表单的示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-11-11
  • pycharm 使用心得(六)进行简单的数据库管理

    pycharm 使用心得(六)进行简单的数据库管理

    功能简介:pycharm自带了一个简单的数据库插件,可以比较方便的进行简单的数据库操作。
    2014-06-06
  • Python正规则表达式学习指南

    Python正规则表达式学习指南

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例,非常不错,具有参考借鉴价值,需要的朋友一起学习吧
    2016-08-08
  • python网络编程tcp客户端及服务端解读

    python网络编程tcp客户端及服务端解读

    Python的socket模块提供了基本的网络通信功能,包括创建socket对象、绑定地址、监听连接、接受连接、发送和接收数据以及关闭连接等,TCP和UDP是常用的网络协议,IP地址和端口号用于标识通信端点,通过这些功能,可以实现客户端和服务器之间的网络通信
    2025-01-01

最新评论