c# - 使用 Regex 替换特定的字符串出现但忽略其他基于相邻字符的字符串

标签 c# regex

我有一个字符串

   "sub section 15(1) of main section, this might be a <link href="15(1)">15(1)</link>". 

我想使用 Regex.Replace 方法将“15(1)”替换为新的字符串值“15”,但仅限于它单独出现的位置。

我正在使用以下模式,但它不起作用。

 temp = "sub section 15(1) of main section, this might be a <link href="15(1)">15(1)</link>";    
 temp = Regex.Replace(temp, @"15(1)", @"15");

输出字符串应该是:

"sub section 15 of main section, this might be a <link href="15(1)">15(1)</link>"

我们将不胜感激。

谢谢

最佳答案

在您的帖子中,您说过要在“单独使用”时替换“15(1)”。这是否意味着它被空格包围?

此方法符合您想要的输出:

string pattern = @"(?<=^|\s)15\(1\)(?=\s|$)";
string result = Regex.Replace(input, pattern, "15");
Console.WriteLine(result);

只有当值出现在行的开头或前面有一个空白字符,并且后面跟着一个空白字符或行尾时,此模式才会匹配。

关于c# - 使用 Regex 替换特定的字符串出现但忽略其他基于相邻字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7531977/

相关文章:

Java正则表达式不匹配多行字符串

正则表达式:匹配文本方括号和方括号内包含的内容,然后搜索并替换

c# - 创建一个覆盖层以禁用所有其他表单元素

c# - 在 Word 文档中突出显示字符串

c# - 如何创建显示部分主窗口的第二个窗口

python - 使用 python 从文本文件中仅获取第一行的正则表达式代码

jQuery,获取不带扩展名的文件名,然后替换字符串

c# - 使用一系列日期时间填充列表的简单方法

c# - 如何在 C# List 中存储 IP 地址列表以使其也可以搜索子网?

Python从名称字符串的末尾删除中间首字母