Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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# 解析*"E;”零后面的量词{x,y}_C#_.net - Fatal编程技术网

C# 解析*"E;”零后面的量词{x,y}

C# 解析*"E;”零后面的量词{x,y},c#,.net,C#,.net,尝试Regex.Replace()方法时失败。 我怎样才能修好它 Replace.Method (String, String, MatchEvaluator, RegexOptions) 我尝试代码 <%# Regex.Replace( (Model.Text ?? "").ToString(), patternText, "<b>" + patternText + "</b>", RegexOptions.IgnoreCase | RegexOptions.M

尝试
Regex.Replace()
方法时失败。 我怎样才能修好它

Replace.Method (String, String, MatchEvaluator, RegexOptions)
我尝试代码

<%# Regex.Replace( (Model.Text ?? "").ToString(), patternText, "<b>" + patternText + "</b>", RegexOptions.IgnoreCase | RegexOptions.Multiline)%>

是否仅尝试使用字符串
“*”
作为正则表达式?至少这是导致您在此处出错的原因:

PS Home:\> "a" -match "*"
The '-match' operator failed: parsing "*" - Quantifier {x,y} following nothing..
At line:1 char:11
+ "a" -match  <<<< "*"
PS Home:\>“a”-匹配”*
“-match”运算符失败:分析“*”-Quantifier{x,y}后没有任何内容。。
第1行字符:11

+“a”-match是否仅尝试使用字符串
“*”
作为正则表达式?至少这是导致您在此处出错的原因:

PS Home:\> "a" -match "*"
The '-match' operator failed: parsing "*" - Quantifier {x,y} following nothing..
At line:1 char:11
+ "a" -match  <<<< "*"
PS Home:\>“a”-匹配”*
“-match”运算符失败:分析“*”-Quantifier{x,y}后没有任何内容。。
第1行字符:11

+“a”-match您的正则表达式中似乎只有一个
“*”
。这是不对的。
“*”
并不意味着“任何东西”(就像在文件规范中),而是“上一个可以重复0次或更多次”

如果你想要“任何东西”,你必须写
“*”
表示“任何单个字符”,然后将重复该字符

编辑: 如果您单独使用其他量词,也会发生同样的情况:
“+”
“?”
“{n,m}”
(其中n和m是指定下限和上限的数字)

  • “*”与“{0,}”相同
  • “+”与“{1,}”相同
  • “?”与“{0,1}”相同

这可能解释了您收到的文本或错误消息。

您的正则表达式中似乎只有一个
“*”
。这是不对的。
“*”
并不意味着“任何东西”(就像在文件规范中),而是“上一个可以重复0次或更多次”

如果你想要“任何东西”,你必须写
“*”
表示“任何单个字符”,然后将重复该字符

编辑: 如果您单独使用其他量词,也会发生同样的情况:
“+”
“?”
“{n,m}”
(其中n和m是指定下限和上限的数字)

  • “*”与“{0,}”相同
  • “+”与“{1,}”相同
  • “?”与“{0,1}”相同
这可能会解释您收到的文本或错误消息。

谢谢

我就这样修好了

<%# Regex.Replace( (Model.Text ?? "").ToString(), Regex.Escape(patternText), "<b>" + patternText + "</b>", RegexOptions.IgnoreCase | RegexOptions.Multiline)%>

谢谢

我就这样修好了

<%# Regex.Replace( (Model.Text ?? "").ToString(), Regex.Escape(patternText), "<b>" + patternText + "</b>", RegexOptions.IgnoreCase | RegexOptions.Multiline)%>


Er,当您尝试Regex.Replace时,什么失败了?当我尝试不只是*,+?呃,当您尝试Regex.Replace时,什么失败了?当我尝试不只是*,+?任何单个字符时,都会发生,有时,换行符除外。任何单个字符,有时,换行符除外。
(Model.Text??).ToString()
实际上相当于
Model.Text??“
,作为字符串上的
ToString()
只返回该字符串。为什么在string.Replace完成任务时使用Regex.Replace?
(Model.Text??)。ToString()
实际上等同于
Model.Text??”??“
,作为字符串上的
ToString()
仅返回该字符串。为什么在字符串.Replace将完成任务时使用Regex.Replace?只需在此处为使用
的任何人添加注释,其中对象{$\ notmatch'*text*text*}
将失败,使用
'text.text'
只为任何使用
对象{$\uu-notmatch'*text*text*}
将失败的人在此处添加注释,而使用
'text.text'