1
我正在使用this UDF作爲MySQL中的PREG_REPLACE函數,並且一切似乎都工作正常。但是,我現在的目標是在列中查找和編碼pre
標籤中的實體。所以,最後我想要得到這樣的:MySQL中的PREG_REPLACE和PREG_REPLACE_EVAL
<pre>
<strong>Hello World!</strong>
</pre>
看起來像這樣:
<pre>
<strong>Hello World!</strong>
</pre>
我使用的preg_replace函數查找pre
標籤這樣裏面的內容:
SELECT PREG_REPLACE('/<pre>(.*?)<\\/pre>/sm', '\\1', '<pre><strong>Hello World</strong></pre>');
現在我想用\\1
來代替ENCODE_ENTITIES('\\1')
,顯然它可以是其他函數,比如例如,但UPPER('\\1')
並不多。我有點像在PHP的執行preg_replace
的的PREG_REPLACE_EVAL
想法,允許這樣的事情:
preg_replace("/(<\/?)(\w+)([^>]*>)/e",
"'\\1'.strtoupper('\\2').'\\3'",
$html_body);
就如何落實在MySQL類似的任何想法?或者,也許我走錯了路?謝謝!
你確定pre不會與其他pre元素嵌套嗎? – FailedDev
@FailedDev是的,我很確定,至少在我的情況下,但你說得對,這是我們應該注意的事情。謝謝! – kovshenin
你不能留意它。如果是這種情況,則正則表達式不適合執行此任務。如果您100%確定pre元素不包含其他pre元素,我可以爲您當前的問題提供解決方案。 – FailedDev