如果每行只有一个句子(我想突出显示以这些词开头并以句号结尾的句子),则此正则表达式词会很好:
(How|What|Where|Is|Are|Has|Have|Do|Does)(.*)(\.)
但是在以下行中:
What something? Is something.
整行突出显示。我只想突出显示Is something.
我尝试过:
(?![?!.])(How|What|Where|Is|Are|Has|Have|Do|Does)(.*)(\.)
但是什么也没发生。我在做什么错了?
答案 0 :(得分:1)
也许是这个吗?
[How|Is|Where|What|Are][ \w+]*[\.|\?]
以疑问词开头,后跟空格或单词
答案 1 :(得分:0)
您可以尝试将.*
替换为[^.?!]*
,而在句号或的任何其他结尾标点符号中,\b(?:How|What|Where|Is|Are|Has|Have|Do|Does)\b[^.?!]*\.
则不匹配:
var input = "What something? Is something.";
var regex = /\b((?:How|What|Where|Is|Are|Has|Have|Do|Does)\b[^.?!]*\.)/g;
var match = regex.exec(input);
console.log(match[1]);
下面是一个简短的JavaScript代码段,显示了实际使用的正则表达式:
var foo = "something"
var foo = "another thing"
console.log(foo) //another thing
答案 2 :(得分:0)
您可以在此处使用否定的字符类:
/(?:How|What|Where|Is|Are|Has|Have|Do|Does)([^?.\n]*)\./g
[^?.\n]
是一个否定字符类,它将与.
,?
或换行符以外的任何字符匹配。