正则表达式通过其前缀匹配句子中的单词

Ben*_*jia 3 javascript regex mongodb

我在mongodb查询上有这个正则表达式来匹配单词前缀:

{sentence: new RegExp('^'+key,'gi')}
Run Code Online (Sandbox Code Playgroud)

如果我希望它匹配至少有一个以key前缀开头的单词的句子,那么正确的正则表达式模式是什么?例如:

如果我有一个句子

"这是一只狗"

key'do'时,它应匹配该句子,因为前缀'do'是'dog'的子串.

我现在的解决方案只适用于句子的第一个单词.如果我键入't'或'th'或'this',它到目前为止只匹配该句子.每当我输入'i'('is'的前缀)或'do'('dog'的前缀)时,它就不匹配该句子.

Tik*_*vis 6

您可以使用表达式/\bprefix\w+/。这应该匹配任何以 开头的单词"prefix"。这里的\b代表一个词边界并且\w是任何词字符。

如果你不想得到整个词,你可以做/\bprefix/。如果你想把它放在一个字符串中,你还必须转义\: '\\bprefix'

  • 在“\w+”之后需要“\b”吗?当然单词边界不是单词字符...... (2认同)

wut*_*utz 5

使用\b锚点匹配单词边界:

\bdo
Run Code Online (Sandbox Code Playgroud)

在'好狗'中找到'做',但不能与'无所事事'相提并论.

  • 如果你真的要在字符串中(而不是正则表达式文字),你应该逃避反斜杠:`'\\ bdo'`. (5认同)