2017-06-15 54 views
-1

提取值我有;#<number>;#分离为一个字符串:需要的preg_match的精确模式在PHP

aaaa;#112;#bbbb;#113;#cccc;#112;#dddd 

我想找到所有aaaabbbb等阵列使用preg_match()

正则表达式模式应该是什么?

我试图至今:

preg_match('/\;\#(?:[0-9]+)?/', $franchCont, $matches); 
+4

'match'?为什么不“分裂”? 'preg_split('/;#\ d +;#/',$ string)' – falsetru

+0

@falsetru,是的,它的工作,并再次感谢:) – aniruddha

+0

我想与:preg_match('/ \; \#(?:[0 -9] +)?/',$ franchCont,$ matches);但是@falsetru建议的preg_split为我工作 – aniruddha

回答

0

你试图通过分隔符分裂;所以preg_split更适合使用功能:

$parts = preg_split('/;#\d+;#/', $string); 
0

你可以使用拆分,或匹配。

既然你问了一下比赛,一个办法是

https://regex101.com/r/P5MPDf/1

(?:;#\d+;#(*SKIP)(*FAIL)|(?:(?!;#\d+;#).)+)

解释

(?: 
     ;\# \d+ ;\# (*SKIP) (*FAIL) # Consume, but fail the delimiter 
    |        # or, 
     (?:       # Get all up until the delimiter 
      (?! ;\# \d+ ;\#) 
      . 
    )+ 
)