【问题标题】:preg_match Regex Matching Full Stringpreg_match 正则表达式匹配完整字符串
【发布时间】:2014-12-05 18:33:45
【问题描述】:

我有一个简单的正则表达式,但它的匹配比我想要的要多...

基本上,我试图匹配某些运算符(例如,><!==)后跟一个字符串。

正则表达式:

/^(<=|>=|<>|!=|=|<|>)(.*)/

示例主题:

>42

我得到了什么:

array (size=3)
  0 => string '>42' (length=3)
  1 => string '>' (length=1)
  2 => string '42' (length=2)

我想得到什么:

array (size=2)
  0 => string '>' (length=1)
  1 => string '42' (length=2)

我不明白的是我的正则表达式在 Regex101 上完美运行

编辑:澄清一下,我怎样才能摆脱完整的字符串匹配?

【问题讨论】:

  • 这和我已经拥有的一样...
  • 你不能。另一种方法是移动匹配数组:array_shift($matches)

标签: php regex preg-match


【解决方案1】:

你的答案是正确的。Group(0)whole matchGroup(1) 如果第一组和group(2) 是第二组。

【讨论】:

  • 有没有办法排除whole match
【解决方案2】:

您将获得所有 3 个组 \0\1 和 '\2'。 see the group matching at the bottom of the page

假设您的匹配项在 $matches 中,如果您愿意,可以运行 array_shift($matches) 删除“\0”匹配项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 2013-06-12
    • 1970-01-01
    • 2020-12-28
    相关资源
    最近更新 更多