我希望匹配文章标题的开头到第5个字的特定字符串。
输入字符串:
The 14 best US colleges in the West are dominated by California — here's who makes the cut.
正则表达式:
/^.*(\bbest\b|\btop\b|\bhot\b).*$/
目前匹配整篇文章标题但想搜索到“大学”。 并且还需要忽略或不匹配的字符串,如笔记本电脑,热点等。
答案 0 :(得分:0)
您可以使用此表达式
^((?:\w+\s?){1,5}).*
说明:
^
在字符串
\w+
匹配任何单词字符
\s?
匹配任何空格字符
{1,5}
量词 - 1至5次,尽可能多次
.*
匹配任何字符(换行符除外)
这匹配前5个单词(和空格)。
答案 1 :(得分:0)
^(\w+\s){0,4}\b(best|top|hot)(\s|$)
您想要在输入句子的前五个单词中匹配字符串。然后,如果从句子的开头开始计算,则在要匹配的单词之前必须有0-4个单词。因此,在您要匹配的特定字词之前需要^(\w+\s){0,4}
。见https://regex101.com/r/nS0dU6/4
答案 2 :(得分:0)
regex101再次提供帮助。
^(?=(?:\w+\s){0,4}?(?:best|top|hot)\b(?!-))(\w+(?:\s\w+){0,4})
(?=(?:\w+\s){0,4}?(?:best|top|hot)\b(?!-)
检查关键字是否在前5个内(请注意,(?!-)
已添加,以满足hot-spot
等字词的需要)(\w+(?:\s\w+){0,4})
然后匹配第一个最多5个字