我正在构建一个小的python程序,我找不到正确的正则表达式。让我解释一下自己:
我有下一个字符串
bar = ' Type of network : Infrastructure'
使用de代码:
foo = re.findall(r'(\w+(\s\w+)+)\s+:\s+(\w+)', bar)
print(foo)
我获得:
[('Type of network', ' network', 'Infrastructure')]
我想:
[('Type of network', 'Infrastructure')]
我知道我可以通过':'分割字符串并修剪空白,但我更喜欢正则表达式。
非常感谢
答案 0 :(得分:2)
另一种不使用正则表达式[ x.strip() for x in bar.split(':')]
输出:['Type of network', 'Infrastructure']
答案 1 :(得分:0)
也许你想使用非捕获括号:
(\w+(?:\s\w+)+)\s+:\s+(\w+)
答案 2 :(得分:0)
下一个怎么样?
foo = re.findall(r'\s*(.*?)(?:\s*:\s*)(.+)(?<!\s)', bar)
它还处理如下字符串:
' Type of network : Infra structure '