如果我有一个这样的字符串......
"123[1-5]553[4-52]63244[19-44]"
...验证以下条件的最佳方法是什么:
- 每个左括号都有一个匹配的右括号
- 没有超过3括号组
- 有no嵌套括号(即 [123-[4]9])
正则表达式能够验证所有这些场景吗?如果没有的话,LINQ 怎么样?
因为不允许嵌套,所以可以使用正则表达式:
^([^[\]]*\[[^[\]]*\]){0,3}[^[\]]*$
解释:
-
(...){0,3}
matches up to three sets of the following:
-
[^[\]]*
匹配可选的非括号字符
-
\[
火柴[
开一个群组
-
[^[\]]*
匹配组内可选的非括号字符
-
\]
火柴]
关闭群组
- 最后,
[^[\]]*
匹配所有组之后的更多可选非括号字符
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)