c# - 正则表达式搜索和替换,其中替换是搜索词的模组

标签 c# regex

我很难找到解决这个问题的方法,我很确定正则表达式支持它。我只是记不起正则表达式世界中概念的名称。

我需要搜索并替换特定模式的字符串,但模式可以不同,替换需要“记住”它要替换的内容。

例如,假设我有一个任意字符串:134kshflskj9809hkj

我想用括号将数字括起来, 所以结果将是:(134)kshflskj(9809)hkj

找数字很简单,但是如何围起来呢?

任何人都可以提供示例或为我指明正确的方向吗?

最佳答案

在一些不同的语言中:

// C#:
string result = Regex.Replace(input, @"(\d+)", "($1)");
// JavaScript:
thestring.replace(/(\d+)/g, '($1)');
// Perl:
s/(\d+)/($1)/g;
// PHP:
$result = preg_replace("/(\d+)/", '($1)', $input);

(\d+) 周围的括号使其成为一个“组”,特别是第一个(并且仅在这种情况下)组,可以是 backreferenced在替换字符串中。 g 标志在某些实现中是必需的,以使其在单个字符串中匹配多次)。替换字符串非常相似,尽管有些语言会使用 \1 而不是 $1 并且有些语言会同时使用这两种语言。

关于c# - 正则表达式搜索和替换,其中替换是搜索词的模组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1269265/

相关文章:

Regex lookbehind - 从搜索中排除单词

c# - "System.Web.UI.MasterPage does not contain a definition..."ASP.NET 错误

c# - 无法在 LINQ to Entities 查询中构造实体

c# - C#线程对象生存期

c# - 为什么 Regex 和 StringBuilder 在删除空格时速度较慢?

R:基于条件的正则表达式第一次出现

java - 使用正则表达式作为 StringTokenizer 的分隔符

c# - 在 .NET C# 中集成 Python 脚本

C# 转换运算符不知道强制转换为对象?

java - 正则表达式中的匹配字符 * (Java)