情景:
$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为零或更多。
答案 0 :(得分:1)
您可以使用这种基于前瞻性的匹配:
SELECT
^CUSTOMER NAME.+?(?=ADDRESS|$)
。CUSTOMER NAME JOE SOAP
是积极向前看,断言我们前面有(?=ADDRESS|$)
或行尾,因此在此之前让我们匹配到位。