正则表达式贪心问题(C#)我有一个输入字符串,如“===text===and===text===”,我想替换带有相应html标签的wiki语法。输入:===text===和===text===理想输出:text和text但是使用以下代码我得到了这个输出:varregex=newRegex("---(.+)---");varoutput=regex.Replace("===text===and===text===","$1");text===and===text我知道问题是我的正则表达式匹配贪婪。但是如何让他们不贪心。谢谢你和亲切的问候。Danny在正则表达式中添加问号:===(.+?)===更好的选择是使用以下形式的正则表达式:===([^=]+)===。有关使用点的说明,请参阅本指南中的点字符。在对我提供的正则表达式进行基准测试时,它大约是。比正则表达式快50%。为了使正则表达式不贪心,您使用?所以表达式"===(.+?)==="会有两个匹配项——这样你就可以简单地生成文本和文本了吗?或许?===.+?===我将添加另一个变体:===((?:(?!===).)*)===(停止捕获任何字符)...哦...为了.WiseGuyEh的建议问题,我建议RegexOptions.SingleLine这样。甚至匹配换行符。仅供参考,如果其他人有同样的问题,那么我-也避免匹配===Text====而不是===Text===我已经扩展了这样的模式:(?Tutorial:Allcontentsharedby正则表达式贪心问题(C#),如果对你有用,需要了解更多C#学习教程,希望你多多关注---本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除,如需转载请注明出处:
