MVC C# 单个正则表达式来验证花括号和尖括号

Posted

技术标签:

【中文标题】MVC C# 单个正则表达式来验证花括号和尖括号【英文标题】:MVC C# single regex to validate curly braces and angle brackets 【发布时间】:2017-12-28 16:51:16 【问题描述】:

我正在尝试为我的一个项目制作微调器,并且我有一个文本区域,如果大括号闭合且文本没有尖括号,我想验证文本。

到目前为止,我能够检查文本中是否存在带有[^<>]* 的尖括号

我有这个字符串hello|hi|hey arbaz, how are you?|how you doing 我想验证花括号是否正确关闭。例如字符串不能是

hello|hi|hey arbaz, how are you?|how you doing

hello|hi|hey arbaz, how are you?|how you doing

不能用大括号括起来。

\?>\?<c>|[^]+|\?<-c>*?c?!\ 到目前为止是我的正则表达式。

我需要一个正则表达式,它可以使用花括号进行验证,并且不允许使用尖括号。请原谅我英语不好。谢谢

【问题讨论】:

您是否正确,您想要匹配包含除... 子字符串以外的字符的字符串,并且这些都不能匹配< 和@ 987654331@?试试^(?:[^<>]|[^<>]*)*$ 见here @WiktorStribiżew 非常感谢您的评论,它就像我想要花括号一样工作。您能否添加以检查是否存在 html 标签,例如 <> 谢谢 通过链接查看我上面的评论。 <hello>|hi|hey arbaz, how are you?|how you doing 不匹配,因为字符串包含 <(和 >,但它已经不重要了) 【参考方案1】:

您希望匹配包含除... 子字符串以外的字符的字符串,并且这些字符都不能匹配<> 字符。

你可以使用

^(?:[^<>]|[^<>]*)*$

见regex demo

匹配:

^ - 字符串开头 (?: - 非捕获组的开始 [^&lt;&gt;] - 除 &lt;&gt; 之外的任何字符 | - 或 - 一个 [^&lt;&gt;]* - 除了&lt;&gt; 之外的 0+ 个字符 - 一个 字符 )* - 重复组模式 0+ 次 $ - 字符串结束。

【讨论】:

非常感谢您的快速帮助。上帝保佑。 如果&lt;...&gt;... 之外,那么它应该会报错。 @ArbazAbid 目前,该模式不允许在任何地方使用&lt;&gt; 实际上它允许..当我在大括号外写 &lt;&gt; 时。它允许它。 @WiktorStribiżew:实际上我是在客户端检查,而不是在服务器端检查。非常感谢您的简短解释。现在我正在检查服务器端并且工作正常。再次感谢

以上是关于MVC C# 单个正则表达式来验证花括号和尖括号的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中使用括号验证布尔表达式

C# 正则表达式 - 为括号内的单个模式查找一个或多个匹配项

获取花括号之间的值c#

正则表达式替换除大小写“0”之外的所有花括号

ASP.NET MVC 正则表达式属性不适用于括号(文字)

涉及花括号的正则表达式不起作用,而对于方括号则有效