在Python Cookbook第3版的第2章第2.1节中,您有以下内容:
>>> line = 'asdf fjdk; afed, fjek,asdf, foo'
>>> import re
>>> re.split(r'[;,\s]\s*', line)
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
是的,这是一个很好的例子。。。但是当我尝试删除regex中的\s*
时,它仍然具有相同的效果。。。见下文:
那么,除了没有。。哪个更简单、更短?在
请输入您的输入。在
我没有这本书,所以我不知道作者的意图。但是David Beazley非常敏锐,所以我只能猜测这是为了区分这两行的输出。在
使用书中的regex,第二行是
^{pr2}$使用你修改过的正则表达式
正则表达式将折叠组
[;,\s]
中没有用不在匹配组中的字符分隔的所有符号。在两个正则表达式都不同。在
第一个regex声明,分隔符应该是逗号、分号或空格(可选地后跟空格)
第二个regex声明,分隔符应该是一个或多个逗号、分号或空格。
因此,根据定义,如果将正则表达式应用于以下字符串,则可以很容易地找到差异
所以结果会有所不同
^{pr2}$现在,您想要的regex是什么取决于您要处理的输入是什么,以及所有可接受测试用例的期望输出是什么。在
相关问题 更多 >
编程相关推荐