帮助简化几个正则表达式

问题描述

| 下面,我有两个对某些文本进行操作的正则表达式: 假设键= \“旧\”,值= \“新\”
text = Regex.Replace(text,\"\\\\.\" + change.Key + \",\",\".\" + change.Value + \",\"
    );
text = Regex.Replace(text,\"\\\\.\" + change.Key + \";\",\".\" + change.Value + \";\"
    );
因此,\“。old,\”和\“。old; \”将分别更改为\“。new,\”和\“。new; \”。 我确定可以将其缩短为一个正则表达式。我该怎么做,以便仅当逗号和分号位于变量的末尾时才更改字符串?例如,我不希望\“。oldQ \”更改为\“。newQ \”。谢谢!     

解决方法

.NET使用$进行反向引用:
text = Regex.Replace(text,@\"\\.\" + change.Key + \"([,;])\",\".\" + change.Value + \"$1\");
    ,意料之外:
text = Regex.Replace(text,@\"\\.(old|new),\",@\"\\.\\1;\");
    ,您只想更改中间部分,所以:
text = Regex.Replace(text,\"\\\\.\" + change.Key + \"(,|;)^\",// mark a group using \"()\" for substitution...
    \".\" + change.Value + \"\\1\"       // use the group (\"\\1\")
    );
    ,我喜欢使用\\ b,像这样:
text = Regex.Replace(text,@\"\\.\" + change.Key + @\"\\b\",\".\" + change.Value);
它可以匹配关键字,后跟其他定界符,不仅限于\“,\”和\“; \”,但在您的情况下仍然可以使用。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...