Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在将一条线与一个模式匹配,例如:
if (/.*someRegExp(.*)someOtherRegExp.*/) { 处理 $1 }
但是,问题是我有很多次出现“someRegExp(.*)someOtherRegExp”
你能告诉我如何选择,当然!,第一次出现?
谢谢你!
你需要让你的量词不贪心。*默认情况下是贪婪的,这意味着它会尝试尽可能多地捕获。为了使它不贪心,添加?:
*
?
if (/.*?someRegExp(.*?)someOtherRegExp.*?/) { process $1 }
在正则表达式的那部分之前让你的量词不情愿:
if (/.*?someRegExp(.*)someOtherRegExp.*/) { process $1 }
现在,.*?将只匹配第一个匹配它后面的模式的子字符串之前的字符串。
.*?