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

Jiř*_*iří 0 python regex re2 rethinkdb

我对 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
Run Code Online (Sandbox Code Playgroud)

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

小智 5

你可以试试:

(?:^|[[:punct:]]| )les(?:[[:punct:]]| |$)
Run Code Online (Sandbox Code Playgroud)

上述正则表达式的解释:

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

图片表示

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

RE2 演示