如何解决使捕获的正则表达式重复
我有一个正则表达式\\[\\[(.+)\\]\\]
。我用它来捕获hey I [[am]] so awesome
之类的wiki链接(捕获am
)。我该如何修改,使hey I [[am]] more [[awesome]] than you think
分别产生am
和awesome
?我的尝试产生了单个字符串,如ѭ6single。简要介绍一下:我正在用它编写一个Ruby IRC机器人。
附言Wikilink也可以是多词,例如hey I am much [[more awesome]] than you [[probably think]].
解决方法
您需要使
.+
非贪心:
\\[\\[(.+?)\\]\\]
参见参考文献:ruby regexen。
, 您可能会使用非贪婪的版本,例如\\[\\[(.+?)\\]\\]
(注意问号)。
, String \的扫描运算符应捕获所有您要查找的正则表达式,其中“ 11”是“ 12”是关键。直到第一个]
都将匹配并停止。
string.scan( /\\[\\[([^\\]])+\\]\\]/ );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。