我被卡住了。並不是說我是一個正則表達式,事實上恰恰相反。但我無法解決看似明顯的任務。使用正則表達式從字符串中提取標籤
原始字符串:
tag:tag1; tag:tag2;tag:tag3; tag:tag4
我需要提取標籤,即「標籤」之間的一切,接下來的分號(或行的最後標記的結束)。迄今爲止我能得到的最好的結果是:
{tag:(?P<tag>[^;]+)(;|$)}i
即,從「tag:」開始,然後允許除分號之外的任何符號,然後以分號或行尾結束。並做不區分大小寫的匹配。但隨着雙方preg_match
和preg_match_all
,我只得到與此正則表達式:(
另一種第一標籤(但不循環)方法來實現我想要什麼,一個標籤的字符串數組,用PHP也算。
你的正則表達式和'preg_match_all()'工作就好了。 – mario 2014-10-12 12:46:18
我未能重現此行爲。 – Unihedron 2014-10-12 12:47:11
不能刪除標籤:然後使用explode(「;」,$ string); ? – 2014-10-12 12:47:23