WPF将单个下划线视为content
的{{1}}
但是,内容可能需要包含下划线。
内容由用户定义,没有什么可以阻止他们按顺序或不按下多个下划线。 EG
Button
如果我将上述无意义字符串分配给Button.Content,它会将单个下划线视为助记符,并将导致This_Is It for the__moment and this is three___of the things
(注意_缺少_我现在将ThisIs作为一个单词)。我希望它更新它ThisIs It for the__moment and this is three___of the things
(注意它现在是双下划线,但是下划线的其他情况保持不变)。
这就是我所拥有的,它是如此笨重(尽管它有效)。
This__Is It for the__moment and this is three___of the things
我的问题是,RegEx会有更少的代码吗?
答案 0 :(得分:3)
您可以使用以下正则表达式查找单个下划线:
(?<!_)_(?!_)
然后用两个下划线替换它。
(?<!_)
是负面的背后;它可以防止匹配的下划线前面有另一个下划线。
(?!_)
是一个负面的预测;它可以防止匹配的下划线后跟另一个下划线。
您需要使用using System.Text.RegularExpressions;
,您可以像下面一样使用它:
var regex = new Regex(@"(?<!_)_(?!_)");
var result = regex.Replace(str, "__");
答案 1 :(得分:2)
以下c#代码应该可以满足您的需求。
var reg = new Regex("(?<!_)_(?!_)");
reg.Replace("your string","__");
答案 2 :(得分:1)