python - 正则表达式仅用于整个单词(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在线助手,也给我发链接。非常感谢。
解决方案
你可以试试:
(?:^|[[:punct:]]| )les(?:[[:punct:]]| |$)
上述正则表达式的解释:
(?:)
- 代表非捕获组。^, $
- 分别代表行的开始和结束。|
- 代表交替。(?:^|[[:punct:]]| )
- 这确保仅les
出现在行首或标点符号之后或空格之后。如果空白可以多次出现,您可以使用\s+
.(?:[[:punct:]]| |$)
- 正则表达式的这一部分确保les
后面只能跟标点符号或空格或行尾。
您可以在下面找到上述正则表达式的演示。
RE2 演示
推荐阅读
- python - 写入以读写模式打开的文件会改变结构
- mysql - Mysql中的强制转换函数内的Sum给出错误
- python - 使用 fatsecret API 时出现错误 __init__
- pyspark - 在 spark 中实现 informatica 逻辑
- c# - 如何从对象转换为元组(ValueTuple)类型?
- laravel - Laravel 将 Auth 传递给 vue SPA
- laravel - Laravel 从数据库中获取日期返回一个字符串
- html - 修复导航栏从导航跳转到部分页面时隐藏内容
- android - 启用点击项,即使在滚动 RecyclerView 时也是如此
- c - 为什么这些连续的宏替换不会导致错误?