17
Apr
写程序时出现一个正则表达式的问题,如何让正则表达式最小匹配,如:
规则:”abc(.+)cde”
字符串:”abcasdfascdedadadfaabceqewrqcdedfa”
如何让他匹配得到两个字符串: abcasdfascde和abceqewrqcde,而不是abcasdfascdedadadfaabceqewrqcde一个字符串呢?
在Google上找了好久都没找到,最后是istef帮忙解决了:
规则写为: “abc(.+?)cde”
原因: .+ .* 都是贪婪的 .+? .*? 可以让他们不贪婪
另一个问题,请高手帮忙解决:
“ada(\(aafag)asdfa(dfa\(d\))”要匹配成(\(aafag)和(dfa\(d\)),规则该如何写?也就是找到(),但是胡略\(\)的规则
2 条评论了已经
发表评论
字体为 粗体 是必填项目,邮箱地址 永远不会 公布。
允许部分 HTML 代码:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
URIs must be fully qualified (eg: http://shunz.net/) and all tags must be properly closed.
超出部分系统将会自动分段及换行。
请保证评论内容是与日志或 Blog 内容相关的,灌水、攻击性或不恰当的评论 may 会被编辑或删除。













试试这个:
[^\\]{0}\(.+?[^\\]\)
非常感谢!