如何从一开始就非贪婪的搜索

时间:2017-10-27 10:54:48

标签: javascript regex

我想从字符串的开头搜索,但我无法弄清楚如何。

如果字符串为>plaplapla>plaplapla(321),我希望从第一个字符/>.+?\(\d.\)/的最后一次出现开始,使用正则表达式>获取文本。

例如,如果文字为>fir5t W0rd$ > $ec0nd here(2) >third here(),我要提取的文字为> $ec0nd here(2)

我尝试使用regix />.+?\(\d.\)/,但它为>fir5t W0rd$ > $ec0nd here(2)而不是> $ec0nd here(2)

如何修改regix,使其从'>'出现的最后位置开始。字符?

2 个答案:

答案 0 :(得分:2)

由于您的字符串似乎是>分隔符,请使用[^>]否定字符类而不是.*?惰性点模式:

/>[^>]+\(\d+\)/

请参阅regex demo。请注意,/>[^>]+?\(\d+\)/的工作方式类似,但会匹配(<DIGITS>)之后的第一个>子字符串。请参阅this regexthe one above

<强>详情

  • > - 文字>
  • [^>]+ - 尽可能多的>以外的一个或多个字符
  • \( - 文字(
  • \d+ - 一个或多个数字
  • \) - )符号。

答案 1 :(得分:1)

试试这个:

/>[^>]+?\(\d\)/

这样你的正则表达式就不会捕获字符>,所以你将获得它的第二个实例。

Regex 101 Link