整个单词的正则表达式 (RE2)

Regex for just whole word (RE2)

我对 rethinkdb 的正则表达式有点迷茫。我尝试了很多可能性,但解决方案总是不好。我需要在字符串中找到一个单词而不是其他形状。通常,我只使用 re.search 和 "\bword\b" < 这在 TinyDB 中非常有效。 例如,我要查找单词“les”:

les < I need match
lesík < NO
za-les-nit < I need match
les'ns < I need match
odlesnit < NO
useless < NO
doles < NO
kolem je les, který ... < I need match

就像我写的那样,我对 TinyDB 及其搜索正则表达式功能有很好的解决方案,但 RethinkDB 需要一些不同的东西。也许是因为 RE2,我不知道。请帮助我的人。 PS: 如果你知道一些 RE2 在线帮助,也发给我 link。非常感谢。

你可以试试:

(?:^|[[:punct:]]| )les(?:[[:punct:]]| |$)

上面正则表达式的解释:

  • (?:) - 表示非捕获组。
  • ^, $ - 分别表示行的开始和结束。
  • | - 表示交替。
  • (?:^|[[:punct:]]| ) - 这确保只有 les 出现在行首或标点符号之后或白色-[=57= 之后]. 如果white-space可以来多次你可以用\s+.
  • (?:[[:punct:]]| |$) - 正则表达式的这一部分确保 les 后面只应跟标点符号或白色-space 或行尾。

您可以在下面找到上述正则表达式的演示。

RE2 demo