如何在Python中的正则表达式上拆分字符串[重复]

Posted

技术标签:

【中文标题】如何在Python中的正则表达式上拆分字符串[重复]【英文标题】:How to split a string on regex in Python [duplicate] 【发布时间】:2016-02-05 19:36:21 【问题描述】:

我认为这个问题看起来很愚蠢,但我似乎无法让它发挥作用。如何将正则表达式合并到 Python string.split 方法中?下面是一些示例代码:

ip = '192.168.0.1:8080'
tokens = ip.split('[.|:]')
print tokens

由于某种原因,这会生成['192.168.0.1:8080']。有人能指出我错过了什么吗?我尝试转义字符并使用双引号,但似乎没有任何改变。

【问题讨论】:

【参考方案1】:

如果要根据正则表达式模式拆分字符串,则需要使用re.split

tokens = re.split(r'[.:]', ip)

在字符类中| 匹配文字| 符号并注意[.:] 匹配点冒号(| 不会在此处执行 orring)。

所以你需要从字符类中删除|,否则它也会根据管道字符进行拆分。

string.splitlist_comprehension 一起使用。

>>> ip = '192.168.0.1:8080'
>>> [j for i in ip.split(':') for j in i.split('.')]
['192', '168', '0', '1', '8080']

【讨论】:

re.splitstring.split IIRC 贵得多。如果您知道您的字符串将是带有端口的 IP 地址,最好先使用temp = ip.split(':') 然后tokens = temp[1].split('.') 然后tokens.append(ip[1])

以上是关于如何在Python中的正则表达式上拆分字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

用于在所有空格处拆分的正则表达式 Python [重复]

Python - 用于将文本拆分为句子的正则表达式(句子标记)[重复]

通过正则表达式拆分字符串[重复]

数字后的Java正则表达式拆分字符串[重复]

Java - 正则表达式拆分输入文本但保留分隔符[重复]

Python正则表达式拆分但保留某些字符以进行拆分