我试图用 python 中的正则表达式做一些相当简单的事情......至少我是这么想的。
我想要做的是匹配字符串中的单词(如果它前面和后面都有空格)。如果它位于字符串的开头,则之前不需要空格 - 如果它位于末尾,则也不搜索空格。
Example:
"WordA WordB WordC-WordD WordE"
我要匹配WordA WordB WordE
.
我只是想出了过于复杂的方法来做到这一点......
(?<=(?<=^)|(?<=\s))\w+(?=(?=\s)|(?=$))
在我看来,对于如此简单的问题必须有一个简单的方法......
我想我可以从(?<=\s|^)
但这似乎不可能,因为“后视需要固定宽度的模式”。
你似乎在Python中工作(?<=^|\s)
在 PCRE、Java 和 Ruby 中完全有效(.NET 正则表达式支持无限宽度后向查找模式)。
Use
(?<!\S)\w+(?!\S)
它将匹配 1 个或多个用空格或字符串开头/结尾括起来的单词字符。
See the 正则表达式演示.
图案细节:
-
(?<!\S)
- 一旦引擎在当前位置左侧立即找到非空白字符,就会出现负向后查找,匹配失败
-
\w+
- 1个或多个单词字符
-
(?!\S)
- 一旦引擎在当前位置右侧立即找到非空白字符,就会导致匹配失败的负前瞻。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)