繁体   English   中英

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

[英]Regular expression: matching words between white space

我试图用python中的正则表达式做一些相当简单的事......这就是我至少想到的。

我想要做的是匹配字符串中的单词,如果它前面跟着一个空格。 如果它位于字符串的开头,则之前不需要空格 - 如果它在结尾处,也不要搜索空格。

例:

"WordA WordB WordC-WordD WordE"

我想匹配WordA WordB WordE

我只是想出了这样做的简单方法......

(?<=(?<=^)|(?<=\s))\w+(?=(?=\s)|(?=$))

在我看来,这个简单的问题必须有一个简单的方法....我想我可以从(?<=\\s|^)但这似乎不可能,因为“后视需要固定宽度图案”。

您似乎在Python中工作,因为(?<=^|\\s)在PCRE,Java和Ruby中完全有效(并且.NET正则表达式支持无限宽度的后视模式)。

使用

(?<!\S)\w+(?!\S)

它将匹配用空格或字符串的开头/结尾括起来的1个或多个单词字符。

请参阅正则表达式演示

图案细节

  • (?<!\\S) - 一旦引擎在当前位置的左侧立即找到非空白字符串,则会导致匹配失败
  • \\w+ - 1个或更多单词字符
  • (?!\\S) - 一旦引擎在当前位置的右侧立即找到非空白字符串,就会使匹配失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM