我认为这个问题看起来很愚蠢,但我似乎无法让它发挥作用。如何将正则表达式合并到 Python string.split 方法中?下面是一些示例代码:
ip = '192.168.0.1:8080'
tokens = ip.split('[.|:]')
print tokens
Run Code Online (Sandbox Code Playgroud)
由于某种原因,这会生成['192.168.0.1:8080']. 有人可以指出我缺少什么吗?我试过转义字符并使用双引号,但似乎没有任何改变。
re.split如果要根据正则表达式模式拆分字符串,则需要使用。
tokens = re.split(r'[.:]', ip)
Run Code Online (Sandbox Code Playgroud)
在字符类中|匹配一个文字|符号并注意[.:]匹配一个点或冒号(|这里不会做 orring)。
因此,您需要|从字符类中删除,否则它也会根据管道字符进行拆分。
或者
使用string.split沿list_comprehension。
>>> ip = '192.168.0.1:8080'
>>> [j for i in ip.split(':') for j in i.split('.')]
['192', '168', '0', '1', '8080']
Run Code Online (Sandbox Code Playgroud)