我有一个字符串
"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>"
任何帮助将不胜感激。
由于
答案 0 :(得分:1)
试试这个(注意你需要绕着1转义括号):
\W15\(1\)\W
其中\W
是非单词字符;或
\s15\(1\)\s
其中\s
是一个空白字符。
答案 1 :(得分:1)
在您的帖子中,您说要“单独使用”时要替换“15(1)”。这是否意味着它被空白包围?
此方法符合您所需的输出:
string pattern = @"(?<=^|\s)15\(1\)(?=\s|$)";
string result = Regex.Replace(input, pattern, "15");
Console.WriteLine(result);
此模式仅在值出现在行的开头或前面有空格字符时才匹配,如果后面跟着空格字符或行的末尾。
答案 2 :(得分:1)
这有效(?<!\S)15\(1\)(?!\S)