正则表达式只允许在花括号内使用字母数字字符和下划线以及特定的占位符

时间:2019-04-04 15:58:58

标签: php regex pcre

我想要一个仅在花括号内包含字母数字字符,下划线和特定占位符的正则表达式。

有效示例:

test{placeholder}
test_{placeholder}
test_123_{placeholder}
test
test_123
test123
{placeholder}_test
test{placeholder}test
And any combination of above.

这是我想出的:

[^-A-Za-z0-9_]|^\{placeholder\}

我的理解是:

[^-A-Za-z0-9_]-除a-z 0-9和下划线外,不允许其他任何字符。

|^\{placeholder\}-或未显示{placeholder}

的任何内容

但是它不起作用,我不确定为什么。

这里是demo

请帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用

^(?:[A-Za-z0-9_]|{placeholder})+$

详细信息

  • ^-字符串的开头
  • (?:-一个非捕获组的开始:
    • [A-Za-z0-9_]-单词char:字母,数字,_
    • |-或
    • {placeholder}-特定的子字符串
  • )+-组结束,重复1次或更多次
  • $-字符串的结尾。

请参见regex demoRegulex graph

enter image description here