c# - 正则表达式替换为包含原始字符的字符串

标签 c# regex

正则表达式能否用另一个包含原始字符的字符串替换字符串中的模式?例如:

X(#2(3)) -> X([0-9]{3})[0-9]*

X(#6(1)) -> X([0-9]{1})[0-9]*

X(#9(4)) -> X([0-9]{4})[0-9]*

在每种情况下,粗体数字都放在新字符串中。这可能与正则表达式有关吗?如果不是,什么是有效的解决方案?

最佳答案

是的,使用捕获组的正则表达式是可能的。

Regex.Replace(str, @"X\(#\d+\((\d+)\)\)", "X([0-9]{$1})[0-9]*");

DEMO

关于c# - 正则表达式替换为包含原始字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30945700/

相关文章:

c# - 从 View 模型 (WPF) 调用 View 中的动画

javascript - 正则表达式匹配除 <、>、"、/、\之外的每个字符

php - 如何使用 preg_match_all 从字符串中检索三个参数?

regex - 正则表达式转换为图表

Python正则表达式匹配行中的第二个或第三个单词

c# - 不清晰的转换图像。 wmf转png

c# - out 参数 - 为什么它不起作用

c# - 将 XmlDocument 作为子节点添加到另一个 XmlDocument

c# - C#处理集合中项目的优雅方法

c# - 年间隔的正则表达式