首页 > 解决方案 > 正则表达式仅用于整个单词(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在线助手,也给我发链接。非常感谢。

标签: pythonregexrethinkdbre2

解决方案


你可以试试:

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

上述正则表达式的解释:

  • (?:)- 代表非捕获组。
  • ^, $- 分别代表行的开始和结束。
  • |- 代表交替。
  • (?:^|[[:punct:]]| )- 这确保仅les出现在行首或标点符号之后或空格之后。如果空白可以多次出现,您可以使用\s+.
  • (?:[[:punct:]]| |$)- 正则表达式的这一部分确保les后面只能跟标点符号或空格或行尾。

图示

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

RE2 演示


推荐阅读