使用c# Regex将整个单词替换为符号
本文关键字:单词 替换 符号 Regex 使用 | 更新日期: 2023-09-27 18:11:45
所以我试图用一个Regex模式代替像@theplace
或@theplaces
这样的词:
String Pattern = string.Format(@"'b{0}'b", PlaceName);
但是当我做替换时,它没有找到模式,我猜这是@
符号,这是问题。
有人能告诉我我需要做什么Regex模式让它工作?
下面的代码将用<replacement>
替换@thepalace
或@thepalaces
的任何实例。
var result = Regex.Replace(
"some text with @thepalace or @thepalaces in it."
+ "'r'nHowever, @thepalacefoo and bar@thepalace won't be replaced.", // input
@"'B@thepalaces?'b", // pattern
"<replacement>"); // replacement text
?
使前面的字符s
成为可选的。我使用静态正则表达式。替代方法。'b
匹配单词和非单词字符之间的边界。'B
匹配'b
不匹配的所有边界。参见正则表达式边界。
some text with <replacement> or <replacement> in it.
However, @thepalacefoo and bar@thepalace won't be replaced.
您的问题*是@
之前的'b
(词边界)。空格和@
之间没有字界。
你可以直接删除它,或者用非边界替换它,这是一个大写的B
。
string Pattern = string.Format(@"'B{0}'b", PlaceName);
*假设PlaceName
以@
开头
试试这个:
string PlaceName="theplace", Replacement ="...";
string Pattern = String.Format(@"@'b{0}'b", PlaceName);
string Result = Regex.Replace(input, Pattern, Replacement);