javascript - 如何从一开始就进行非贪婪搜索

标签 javascript regex

我想从字符串的开头开始搜索,但不知道如何搜索。

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

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

我尝试使用正则表达式 />.+?\(\d.\)/ 但它给了我 >fir5t W0rd$ > $ec0nd here(2) 而不是 > $ec0nd here(2)

如何修改正则表达式,使其从出现“>”字符的最后位置开始?

最佳答案

因为您的字符串似乎是 >分隔使用 [^>]否定字符类而不是 .*?惰性圆点图案:

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

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

详情

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

关于javascript - 如何从一开始就进行非贪婪搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46973424/

相关文章:

javascript - 提交表单后 req 为空 jade

Javascript正则表达式 - 嵌套时匹配左括号和右括号

java - 替换字符串 java Scanner 类

html - ">"(U+003E GREATER-THAN SIGN) 是否允许在 html 元素属性值内?

javascript - 如何获取NodeList中的Node位置?

java - Htmlunit 中的 HtmlAnchor click() 函数不起作用

regex - Asterisk 应用拨号方案中的模式匹配

html - 如何阻止在文本框中输入电子邮件地址并显示弹出窗口?

javascript 字符高亮显示

javascript - 在 JavaScript 中可以声明一个新的子类作为原型(prototype)方法吗?