我正在研究一些用户输入字段的基于正则表达式的验证。需要在下面给出的字符串中进行验证
{{custName}} With Account Number {{accountnumber}} Your Balance Is {{message_abc.com}}
以及用于检查字符串的相应正则表达式在下面给出
[{{[A-Za-z,_.}} ]*
对于上面提到的字符串来说绝对可以,但是我想要的是:如果字符串是例如
{custName} With Account Number {accountnumber} Your Balance Is {message_abc.com}
会给出错误。
答案 0 :(得分:1)
这将匹配没有大括号的字符串:
^(?:(?!(?<!{){(?!{))(?!(?<!})}(?!}))[{[A-Za-z,_.} ])*$
(?!(?<!{){(?!{))
:避免在匹配大括号之前或之后不使用大括号(?!(?<!})}(?!}))
:避免匹配右花括号,而前后不要匹配答案 1 :(得分:0)
您可以匹配{{...}}
,然后匹配字符类,而无需空格和花括号。
然后将整个0+重复一次,并至少匹配{{...}}
部分的一次。
^(?:\{\{[A-Za-z,_.]*}}[A-Za-z,_. ]*)*\{\{[A-Za-z,_.]*}}$
^
字符串的开头(?:
非捕获组
\{\{[A-Za-z,_.]*}}
匹配{{...}}}
[A-Za-z,_. ]*
(可选)重复字符类中列出的所有字符)*
关闭群组并重复0次以上\{\{[A-Za-z,_.]*}}
至少匹配一次{{...}}}
$
字符串结尾之前和之后是否还有内容:
^[A-Za-z,_. ]*(?:\{\{[A-Za-z,_.]*}}[A-Za-z,_. ]*)+[A-Za-z,_. ]*$