【问题标题】:Opposite of a Regex正则表达式的对面
【发布时间】:2013-04-29 14:30:02
【问题描述】:

正则表达式的规则很简单:

  • 由 NOT 分割:空格 " " 后跟“OR”或“|” :

例子:

"thing to say" france (true)

"thing to say" OR thing (false)

"thing to say" | thing (false)

我正在尝试找到一个正则表达式来帮助我做到这一点(使用 pregs_split)

我只能做类似/\||OR| \|| OR| \| | OR |\| | OR/ 的事情,但我需要一个正则表达式来处理相反的情况。

【问题讨论】:

  • 你的意思是空格吗?而不是_
  • 是的@DarylGill 一个空格
  • 为什么不直接删除“OR”和“|”从输入?
  • 我不控制输入,只有当输入没有“OR”或“|”时才需要执行操作

标签: php regex preg-split


【解决方案1】:

使用负前瞻

"thing to say" ?(?!\||OR)

编辑:您的评论 split by a space followed by "OR" or "|" 与我理解的您的问题不同。在这种情况下,使用 positive 前瞻实际上是有意义的:

/ (?=\||OR)/

【讨论】:

  • 你的意思是$matches = preg_split('?(?!\||OR)', $stringToSplit);
  • 嗯,你的问题有点不清楚。我以为你只是想匹配 not 那个正则表达式。您不能通过前瞻来拆分,因为它不消耗任何东西。您需要更具体的正则表达式。如果你只是用空格分割,它会分割每个单词
  • 是的,我需要用空格分隔,后跟“OR”或“|”这就是为什么我有点困惑
  • 你的编辑很有魅力,但如果我想找到它的对立面呢?我的意思是找到有空格但后面没有'OR'或'|'的情况
  • @vladimire 在这种情况下使用你拥有的/ (?!\||OR)/,但这是很多个空格,不是吗?
猜你喜欢
  • 2023-02-22
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 2014-10-23
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多