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您的正则表达式中似乎只有一个“*”
。这是不对的。“*”
并不意味着“任何东西”(就像在文件规范中),而是“上一个可以重复0次或更多次”
如果你想要“任何东西”,你必须写“*”
。“
表示“任何单个字符”,然后将重复该字符
编辑:
如果您单独使用其他量词,也会发生同样的情况:“+”
、“?”
或“{n,m}”
(其中n和m是指定下限和上限的数字)
- “*”与“{0,}”相同
- “+”与“{1,}”相同
- “?”与“{0,1}”相同
这可能会解释您收到的文本或错误消息。谢谢
我就这样修好了
<%# Regex.Replace( (Model.Text ?? "").ToString(), Regex.Escape(patternText), "<b>" + patternText + "</b>", RegexOptions.IgnoreCase | RegexOptions.Multiline)%>
Er,当您尝试Regex.Replace时失败的是什么?当我尝试的不仅仅是*,+?任何单个字符,有时除了换行符。(Model.Text??)。ToString()
实际上只相当于Model.Text??“
,作为字符串上的ToString()
只返回该字符串。为什么要在字符串.Replace起作用时使用Regex.Replace?只需在此处为使用的任何人添加一条注释,其中对象{$\notmatch'*text*text*}
将失败,请使用'text.text'