php - 匹配没有单括号的字符串
问题描述
我正在对一些用户输入字段进行基于正则表达式的验证。下面给出需要验证的字符串
{{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}
它会给出一个错误。
解决方案
这匹配没有任何单括号的字符串:
^(?:(?!(?<!{){(?!{))(?!(?<!})}(?!}))[{[A-Za-z,_.} ])*$
(?!(?<!{){(?!{))
: 避免在没有另一个之前或之后匹配左大括号(?!(?<!})}(?!}))
: 避免在没有另一个之前或之后匹配右大括号
推荐阅读
- amazon-web-services - AWS Athena + boto3:我应该如何执行命名查询?
- arrays - 在 Word VBA 中将记录集加载到数组中时遇到 Null 值,抛出 Null 的无效使用(使用带有 EXCEL 的 ADODB 连接)
- flutter - 如何在 GridView.builder cads 中添加不同的信息?
- google-apps-script - 谷歌脚本在运行后删除列公式
- python - Openvino movidius 无法读取 IP 摄像头
- angular - (几乎)每个组件中的导航栏
- java - 在java中的另一个类中实例化后的println语句没有打印出正确的值
- github - 在 GitHub 上分叉后无法保存到我的存储库
- r - 使用 colname 向量将特定的 numeric/int 转换为 R 中的因子
- awesome-wm - 令人敬畏的 wm 视觉异常