我正在尝试制作一个JS正则表达式,在所有这些输入字符串中返回example
,其中可能包含问号。
example?after?after
example?after
example?
example
example
将是一个动态字符串,因此我无法完全匹配字符串'example'。
'example?after?after'.match(/(.*?)\?/)[1]
'example?after'.match(/(.*?)\?/)[1]
'example?'.match(/(.*?)\?/)[1]
'example'.match(/(.*?)\?/)[1]
上面的前3个按预期返回example
,但最后一个给出错误。如何修改正则表达式以返回预期结果?
答案 0 :(得分:3)
您可以使用
[^?]+
请参阅regex demo
?
匹配字符串的开头,var regex = /^[^?]+/;
var strs =[ 'example?after?after', 'example?after', 'example?', 'example'];
for (var s of strs)
{
console.log(s + " => " + s.match(regex));
}
匹配q
以外的一个或多个符号。
system