我想在Elastisearch中使用单词边界进行正则表达式查询,但似乎Lucene正则表达式引擎不支持\b
。我可以使用哪些解决方法?
(.*[^A-Za-z0-9_])?word([^A-Za-z0-9_].*)?
详细信息
(.*[^A-Za-z0-9_])?
- 要么是字符串的开头,要么是任何0个或多个字符(但不包括换行符,否则使用(.|\n)*
),然后是除单词字符以外的任何字符(基本上是指在组内模式的1个或0次出现后跟随字符串的开头)word
- 一个单词([^A-Za-z0-9_].*)?
- 可选的任意非单词字符序列,后跟任何0个或多个字符,随后是字符串位置的末尾(在Lucene正则表达式中默认)。 (.*[^A-Za-z0-9#+&=-_])?
? - Florian Walther[
和?
,但我不想要它们。我该如何避免这种情况? - Florian Walther=-_
创建了一个范围。你需要在类的开头放置 -
,[^-A-Za-z0-9#+&=_]
。 - Wiktor Stribiżew
4个文本单词和wordb
字符串(如果word
是你要查找的内容)? - Wiktor Stribiżewword
。 - dimid\b
。请参阅文档。 - Wiktor Stribiżew~([A-Za-z0-9_]word|word[A-Za-z0-9_])word~([A-Za-z0-9_]word|word[A-Za-z0-9_])
的东西来匹配不包含以单词字符结尾的“word”字符串,一个单词,再次是任何文本但不是单词的一部分的单词。 - Wiktor Stribiżew(.*[^A-Za-z0-9_])?word([^A-Za-z0-9_].*)?
。 - Wiktor Stribiżew