RegEx PHP:没有Word Boundaries的零个或多个特定单词

时间:2016-07-19 14:56:49

标签: php regex string

情景:

$string = "CUSTOMER NAME JOE SOAPADDRESS 421 E DRACHMAN"

但有时它可以如此

$string = "CUSTOMER NAME JOE SOAP"

:定位:

一个RegExp模式只能获得 JOE SOAP ,其中 ADDRESS word (及其后面的所有内容)可能存在,因为可能存在号

类似的东西:

$pattern = "/^CUSTOMER NAME (.+)[ADDRESS]*/"

但在这种情况下,显然,[ADDRESS]*表示A或D或R或E或S为零或更多。

1 个答案:

答案 0 :(得分:1)

您可以使用这种基于前瞻性的匹配:

SELECT
  • 这两种情况都匹配^CUSTOMER NAME.+?(?=ADDRESS|$)
  • CUSTOMER NAME JOE SOAP是积极向前看,断言我们前面有(?=ADDRESS|$)或行尾,因此在此之前让我们匹配到位。

RegEx Demo