正则表达式:匹配空格之间的单词

2023-11-27

我试图用 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(使用前将#替换为@)

正则表达式:匹配空格之间的单词 的相关文章

随机推荐