【发布时间】:2018-04-05 18:50:29
【问题描述】:
我正在尝试匹配许可证文件中的文本,但在找到下一个匹配项时如何停止匹配任何文本时遇到了困难。
我的文字是这样的:
packagename
1.0.5 <https://github.com/user/packagename>
Lots of text
here
across multiple lines
packagename2
1.1.0 <https://github.com/user/packagename2>
lots more text here
this continues for a while
across many lines
要找到每场比赛应该从哪里开始,我使用以下正则表达式:
(\w+\n\d+\.\d+\.\d+\s<.*>)
这正确匹配了我所有的标题,但是当我尝试使用时:
(\w+\n\d+\.\d+\.\d+\s<.*>)((.|\n)*)
为了匹配后面的所有字符和换行符,它只捕获第一组,然后只捕获后面的所有文本。
我想将包名作为一个组匹配,并将下一个包名之前的所有内容作为第二组匹配。
【问题讨论】:
-
是的,我的错,忘记标记了。顺便说一句,效果很好,谢谢。
标签: regex