首页 文章

如何在PHP正则表达式中获得所有匹配的3个条件?

提问于
浏览
4

我正在尝试编写正则表达式并匹配3个条件,并且如果满足 all three 条件则返回true .

条件1) string starts with a "{"

条件2) string DOES NOT contain a space somewhere between brackets

条件3 string ends with a "}"

到目前为止,我已经提出了 ^{|[ ]|}$ ,它检查了一个空格 . 但是如果括号之间有 no spaces ,我需要使它匹配 . 如果字符串以 { 开头但不以 } 结尾,则返回true,反之亦然 . 我've been messing with regex101.com, but can'吨没有空格部分 .

如果字符串中存在 does not ,有人可以解释如何匹配吗?

1 回答

  • 3

    看来你需要

    /^{\S*}$/
    

    regex demo .

    Details

    • ^ - 字符串的开头

    • { - 文字 {

    • \S* - 除空白之外的0个字符

    • } - 文字 }

    • $ - 字符串结尾 .

    对于一般情况,当你想匹配字符串中不存在的东西时,你可以记住两种方法:

    • 1)应该缺少的字符串是单个字符:使用否定字符类(例如, ^[^;]*$ 将匹配内部没有 ; 的字符串),或者"negative"速记字符类(如此处, \S 是相反的 \s 并使用 ^\S*$ 匹配没有空格的字符串)

    • 2)字符串不能包含的文本是多字符串:然后使用lookarounds(例如,字符串不应包含 like^(?!.*like).*$ ,甚至 ^(?!.*like) ) .

相关问题