我在String.Format(c#)之后的正则表达式:
(^ {0})|({0} [ - #$%&安培;'}()* +,/:!?;< => @_
\{{|~"])|([-!#$%&'()*+,./}:;<=>?@_
{|〜” ] {0})|({0})
当正则表达式通过调试器时,它看起来像这样:
(^ Word)|(Word [ - !#$%&amp;'}()* +,。/:;&lt; =&gt;?@_
\{|~"])|([-!#$%&'()*+,./}:;<=>?@_
{|〜“] Word)| (Word)
我的string.format的花括号已被空格替换,这显然打破了我的正则表达式。有谁知道如何解决这个问题??
答案 0 :(得分:4)
String.Format在替换值时不会添加空格。我的猜测是你的单词是罪魁祸首。它从何而来?您是否在格式调用之前尝试修剪它?
public Regex getExpression(string word)
{
string baseExpr = @"(^{0})|({0}[-!#$%&'}()+,./:;<=>?@\{{|~""])|([-!#$%&'()*+,./}:;<=>?@_{|~""]{0})|( {0} )";
return new Regex(string.Format(baseExpr, word.Trim()));
}
你可能想要更清楚这个词以消除关键的正则表达式字符。