Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我的正则表达式上的string.Format给了我空格来代替大括号?_C#_Regex - Fatal编程技术网

C# 我的正则表达式上的string.Format给了我空格来代替大括号?

C# 我的正则表达式上的string.Format给了我空格来代替大括号?,c#,regex,C#,Regex,字符串后的我的正则表达式。格式(c#): (^{0}){124;({0}[-!#$%&'}()*+,./:;?@{{code>{{124; ~”]){124;([-!#$%&'()*+,./}:;?@{code>{124; ~“]{0})({0}) 当正则表达式通过调试器时,它如下所示: (^Word)|(Word[-!。$%和')*+,./:;?@(Word)([-!。$%和'()*+,./:;?) 我的string.format的花括号已被空格替换,这显然破坏了我的正则表达式。有人知道如何解

字符串后的我的正则表达式。格式(c#):

(^{0}){124;({0}[-!#$%&'}()*+,./:;?@{{code>{{124; ~”]){124;([-!#$%&'()*+,./}:;?@{code>{124; ~“]{0})({0})

当正则表达式通过调试器时,它如下所示:

(^Word)|(Word[-!。$%和')*+,./:;?@(Word)([-!。$%和'()*+,./:;?)


我的string.format的花括号已被空格替换,这显然破坏了我的正则表达式。有人知道如何解决此问题吗???

string.format在替换中的值时不添加空格。我猜是您的单词造成的。它来自何处?您在调用format之前尝试过修剪它吗

public Regex getExpression(string word)
{
    string baseExpr = @"(^{0})|({0}[-!#$%&'}()+,./:;<=>?@\{{|~""])|([-!#$%&'()*+,./}:;<=>?@_{|~""]{0})|( {0} )";

    return new Regex(string.Format(baseExpr, word.Trim()));
}
public Regex getExpression(字符串字)
{
字符串baseExpr=@“(^{0})|({0}[-!$%&'}()+,./:;?@{{{124;~”)|([-!!$%&'()*+,./:;?){0}){124;({0}”);
返回新的正则表达式(string.Format(baseExpr,word.Trim());
}

您可能需要对单词进行更彻底的清理,以去除关键的正则表达式字符。

String.Format在替换中的值时不会添加空格。我猜是您的单词造成的。它来自何处?在调用Format之前您是否尝试过修剪它

public Regex getExpression(string word)
{
    string baseExpr = @"(^{0})|({0}[-!#$%&'}()+,./:;<=>?@\{{|~""])|([-!#$%&'()*+,./}:;<=>?@_{|~""]{0})|( {0} )";

    return new Regex(string.Format(baseExpr, word.Trim()));
}
public Regex getExpression(字符串字)
{
字符串baseExpr=@“(^{0})|({0}[-!$%&'}()+,./:;?@{{{124;~”)|([-!!$%&'()*+,./:;?){0}){124;({0}”);
返回新的正则表达式(string.Format(baseExpr,word.Trim());
}

您可能需要对单词进行更彻底的清理,以去除关键的正则表达式字符。

您是否100%确定要传递给string.Format的字符串周围没有空格?请发布一段代码片段?您描述的行为太奇怪了,您可能犯了一个简单的错误……是的,您可以添加完整的string.Format吗调用?您是否100%确定要传递给string.Format的字符串周围没有空格?是否可以发布代码片段?您描述的行为太奇怪,您可能犯了一个简单的错误…是的,您可以添加完整的string.Format调用吗?您的代码示例在string.Format()中出现FormatException时崩溃调用。我只是逐字复制了他的表达式,并在语法突出显示中添加了“字符”。看起来他没有正确地转义所有{字符。要“清理”这个词,我建议至少使用Regex.escape(),因为否则会有“Regex注入”“可能;)您的代码示例在string.Format()调用中发生FormatException时崩溃。我只是逐字复制了他的表达式,并在语法高亮显示中添加了“字符”。看起来他没有正确地转义所有{字符。要“清理”这个词,我建议至少使用Regex.escape(),否则您会遇到”正则表达式注入“可能性;”