如何匹配可能有或没有后缀的JS正则表达式

时间:2016-10-20 16:00:32

标签: javascript regex

我正在尝试制作一个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,但最后一个给出错误。如何修改正则表达式以返回预期结果?

1 个答案:

答案 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