在PHP 正規表示式中排除轉義引號
在PHP 中,擷取單引號或雙引號括號的子字串需要仔細注意轉義序列。要忽略符合字串中的轉義引號,我們可以使用高階正規表示式。
考慮以下程式碼:
$code = preg_replace_callback('/"(.*?)"/', array(&$this, '_getPHPString'), $code); $code = preg_replace_callback("#'(.*?)'#", array(&$this, '_getPHPString'), $code);
這些正規表示式符合引號之間的子字串,但無法排除轉義引號。為了解決這個問題,我們採用更全面的正規表示式模式:
建議的正規表示式:
雙引號子字串:
"[^"\\]*(?:\\.[^"\\]*)*"/s
單引號子字串:
/'[^'\\]*(?:\\.[^'\\]*)*'/s
這些正規表示式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許任何非表達式允許轉義字符,包括轉義字符(例如, "n" 和 "t"),以及轉義轉義序列 ("")。
解釋:
透過合併這些正規表示式,您可以準確地提取在帶有引號的字串中包含轉義字元的子字串。
以上是如何在 PHP 中提取帶引號的子字串,忽略轉義引號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!