RegexSearchandReplacereplacethepositionofmodthatisthesearchterm我很难找到解决方案,我很确定正则表达式支持它。我不记得正则表达式世界中概念的名称。我需要为特定模式搜索和替换字符串,但模式可能不同,替换需要“记住”它替换的内容。例如,假设我有一个任意字符串:134kshflskj9809hkj我想用方括号将数字括起来,因此结果将是:(134)kshflskj(9809)hkj查找数字很简单,但如何将它们括起来?任何人都可以提供样品或指出正确的方向吗?在一些不同的语言中://C#:stringresult=Regex.Replace(input,@"(d+)","($1)");//JavaScript:thestring.replace(/(d+)/g,'($1)');//Perl:s/(d+)/($1)/g;//PHP:$result=preg_replace("/(d+)/",'($1)',$input);around(d+)的圆括号使它成为一个“组”,尤其是第一个(且仅在本例中)组,可以在替换字符串中进行反向引用。在某些实现中需要g标志以使其在单个字符串中匹配多次)。替换字符串非常相似,虽然有些语言会使用1而不是$1,有些语言会同时允许。大多数正则表达式替换函数允许您在定义替换字符串时引用正则表达式中指定的捕获组(也称为反向引用)。例如,在PHP中使用preg_replace():$var="134kshflskj9809hkj";$result=preg_replace('/(d+)/','(1)',$var);//$result现在等于“(134)kshflskj(9809)hkj”,其中1表示“正则表达式中的第一个捕获组”。另一个比较通用的解决方案是:搜索:/([d]+)([^d]*)/g替换:($1)$2([d]+):匹配一组一个或多个数字并将它们保留在agroup([^d]*):匹配一组非数字,并保留它们。D也可以在这里工作。g:表示这是一个全局表达式,对输入进行多次处理。($1):在替换块中,parens没有特殊含义,所以输出第一组,用parens包围它。$2:输出第二组我使用了一个非常好的在线正则表达式工具来测试我的表达式。下一步是将它应用到您正在使用的语言,因为每种语言都有其自身的细微差别。如果您只想搜索数字并替换为找到的被括号包围的正则表达式,则不需要反向引用(分组)。在替换字符串中使用整个正则表达式匹配更简单。例如对于perl$text=~s/d+/($&)/g;这将搜索一个或多个数字并替换为匹配项周围的括号(由$&指定)并使用尾随g来查找和替换所有匹配项。有关正则表达式语言的正确语法,请参阅http://www.regular-expressions.info/refreplace.html。根据您的语言,您希望匹配组。所以通常你会以([0-9]{1,})|([a-zA-Z]{1,})的形式制作一个模式然后,你会迭代结果组(特定于你的语言).以上就是C#学习教程:正则表达式查找与替换替换就是搜索词mod位置的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——本文来自网络收藏,不代表立场,如涉及侵权,请点击有权联系管理员删除。如需转载请注明出处:
