正则表达式:匹配白色sp之间的单词

2024-10-01 13:35:21 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我要做的是匹配字符串中的单词,如果它的前面和后面都是空白。如果它在字符串的开头,前面不需要空白-如果它在结尾,也不要搜索空白。在

示例:

"WordA WordB WordC-WordD WordE"

我想匹配WordA WordB WordE。在

我只是想出了一个过于复杂的方法。。。在

^{pr2}$

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


Tags: 方法字符串示例宽度结尾单词事情空白
1条回答
网友
1楼 · 发布于 2024-10-01 13:35:21

您似乎在Python中工作,因为(?<=^|\s)在PCRE、Java和Ruby中是完全有效的(而且.netregex支持无限宽的lookbehind模式)。在

使用

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

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

参见regex demo。在

图案细节

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

相关问题 更多 >