我想在Python中使用Regex表达式匹配给定分隔符之间的值。我希望这可以忽略周围的空白区域。例如:
字符串<li><a href="{{ url_for('about', name=name) }}">About</a></li>
和分隔符1, b cc, "a"
将返回,
,1
,b cc
字符串"a"
和分隔符4 + 5 + 2 +1
将返回+
,4
,5
,2
的四个匹配项
答案 0 :(得分:2)
import re
line = '1, b cc, "a"'
re.split(r'[;,]\s*', line)
Out[7]: ['1', 'b cc', '"a"']
line = '4 + 5 + 2 +1'
re.split(r'\s*[+]\s*', line)
Out[10]: ['4', '5', '2', '1']
re.split()
函数很有用,因为您可以为分隔符指定多个模式。
在这种情况下,对于您的第一个请求,分隔符为comma (,)
,semicolon (;)
,后跟任意数量的额外whitespace
。对于第二个请求,分隔符为plus (+)
,由任意数量的额外whitespaces
包围。
每当找到该模式时,整个匹配就成为匹配任一侧的任何字段之间的分隔符。结果是字段列表,与str.split()
答案 1 :(得分:2)
您可以使用re.split()
方法执行此操作。
import re
re.split('\s*,\s*', '1, b cc, "a"')
re.split('\s*\+\s*', '4 + 5 + 2 +1')