我想從下面的示例中提取數據TXT正則表達式,涵蓋多條線路
START
A: 567 B:345
C: 345 D:485
START
A: 345 B:267
C: 980 D:054
我使用這個正則表達式,沒有陽性結果:
$regex = '~'
. '^(?P<header>.*START:.*)$'
//. '^(.*A: \d{3} B: \d{3}.*)$'
//. '(.*C: \d{3} D: \d{3}.*)$'
. '~m'
;
這給了我以下結果:
Array
(
[0] => Array
(
[0] => START:
[header] => START:
[1] => START:
)
[1] => Array
(
[0] => START:
[header] => START:
[1] => START:
)
)
但只要我去掉了線
. '^(.*A: \d{3} B: \d{3}.*)$'
和
. '(.*C: \d{3} D: \d{3}.*)$'
我沒有得到任何比賽!
如何提取此數據?
我試着刪除線錨^
的起點和沒有成功改變線錨$
年底\n
通則
我怎樣才能提取數據時,我有一個開始數據線後跟n條數據線,後跟數據線末端後跟一條或多條空行?
當您使用多行標誌'M'這意味着''^表示輸入的開始和'$'表示輸入,而不是一行的末尾結束。 – Sammitch
@Sammitch m修飾符:多行。導致^和$匹配每行的開始/結尾(不僅僅是字符串的開始/結束),以及根據:regex101.com – Cesar