似乎無法找出它處理這行文字的表達:正則表達式 - 分組串
'SOME_TEXT','EVEN_MORE_TEXT','EXPRESSION IS IN (''YES'',''NO'')'
爲了這個分組
SOME_TEXT
EVEN_MORE_TEXT
EXPRESSION IS IN ('YES', 'NO')
....我寧願有一記漂亮的正則表達式比字符串函數一樣的indexOf()等解決這個..
似乎無法找出它處理這行文字的表達:正則表達式 - 分組串
'SOME_TEXT','EVEN_MORE_TEXT','EXPRESSION IS IN (''YES'',''NO'')'
爲了這個分組
SOME_TEXT
EVEN_MORE_TEXT
EXPRESSION IS IN ('YES', 'NO')
....我寧願有一記漂亮的正則表達式比字符串函數一樣的indexOf()等解決這個..
正則表達式'([^']|'')++'
將匹配你感興趣,因爲這個演示顯示部分:
$text = "'SOME_TEXT','EVEN_MORE_TEXT','EXPRESSION IS IN (''YES'',''NO'')'";
preg_match_all("/'([^']|'')+'/", $text, $matches);
print_r($matches[0]);
它打印:
Array
(
[0] => 'SOME_TEXT'
[1] => 'EVEN_MORE_TEXT'
[2] => 'EXPRESSION IS IN (''YES'',''NO'')'
)
你可以把周圍的分組反引號,使我們更容易告訴他們分開? – lunixbochs
對不起!我編輯過的文字更具可讀性。謝謝:) – Kman
這有點類似於[那個着名的問題](http://stackoverflow.com/q/1732348/192510)。你需要克服嵌套分隔符(逗號和引號)的問題。有時他們充當分隔符,有時他們只是文本的一部分。兩者之間的分離超出了正常的正則表達式能力 - 雖然一些正則表達式引擎具有額外的能力,但從總體上理解您所得到的並不總是很容易,所以您並不總是知道正則表達式是否會給出正確答案*每時每刻*。如果有些時間足夠好,那就去做吧。 – NealB