對於像asdftheremainderhere
這樣的字符串,使用正則表達式匹配asdf
將字符串拆分爲asdf
和theremainderhere
的簡單方法是什麼?PHP - 捕獲正則表達式匹配以及不匹配的剩餘部分
我試着使用:
preg_match('/asdf|ghik/', 'asdftheremainderhere', $matches);`
但只有asdf
是$matches
的唯一元素。
對於像asdftheremainderhere
這樣的字符串,使用正則表達式匹配asdf
將字符串拆分爲asdf
和theremainderhere
的簡單方法是什麼?PHP - 捕獲正則表達式匹配以及不匹配的剩餘部分
我試着使用:
preg_match('/asdf|ghik/', 'asdftheremainderhere', $matches);`
但只有asdf
是$matches
的唯一元素。
您可以使用\K
使preg_split其保存分隔符
print_r(preg_split('/(asdf|ghik)\K/', 'asdftheremainderhere'));
結果
Array
(
[0] => asdf
[1] => theremainderhere
)
在$matches
陣列$matches[0]
將全面圖案匹配,$matches[1]
將是第一個捕獲組(asdf|ghik)
和$matches[2]
將是第二捕獲組(.*)
這是任何字符0次或多次:
preg_match('/(asdf|ghik)(.*)/', 'asdftheremainderhere', $matches);
print_r($matches);
產量:
Array
(
[0] => asdftheremainderhere
[1] => asdf
[2] => theremainderhere
)
你可以使用捕獲組來做這樣的事情,不是嗎?
preg_match('/(asdf)(.*)/', 'asdftheremainderhere', $matches);
並添加多行標誌,如果你期望換行符,並希望他們在其餘部分。
你需要'preg_split'與各地'asdf'捕獲組。 – Kasramvd
如何捕獲捕獲組? '$ matches = preg_split('/(asdf)|(ghik)/',$ string);' –
您可以使用''(asdf | ghik)''。 – Kasramvd