0

你好 ,

我有文本,我需要在其中找到一个以“start”开头并以“end”结尾的字符串。只有第一次出现。如果字符串是:

 "just test ... bla ...bla start some txt .... end more text "
"just test ... bla ...bla start some txt .... end more text ".match(/start(.*)end/)

我得到了正确的答案,包含 2 个项目的数组:

 array[0]="start some txt .... end"
 array[1]=" some txt .... "

太棒了。当文本包含更多“结束”时:

"just test ... bla ...bla start some txt .... end more text  xxxx end blue fff  ...end"

我无法得到正确的字符串发生的事情是.match(/start(.*)end/)从第一个“开始”到最后一个“结束”而不是第一个“结束”返回所有字符串:返回:"start some txt .... end more text xxxx end blue fff ...end" 我需要的只是第一次出现:

"start some txt .... end"

谢谢您的帮助。

4

2 回答 2

1
/start(.*?)end/

使其?“非贪婪”意味着它会尽可能少地匹配

于 2012-05-12T12:49:35.963 回答
1

尝试非贪婪匹配:

/start(.*?)end/
于 2012-05-12T12:50:14.560 回答