![](/img/trans.png)
[英]Replace everything between and including two characters using regex in php
[英]Regex: Replace Characters In-between Two Characters
我在使用 Regex 替換帶有?
在兩個字符之間。 我希望 Regex 匹配的兩個示例是:
• Replace thi?s question mark but not this one?
• ? Replace the lonely question mark
什么是最好的方法:
a) 匹配一個被其他字符包圍的字符
b) 匹配一個單獨的字符並且在它之前或之后沒有任何字符
我正在使用 PHP preg_match 和 MySQL REGEXP 來執行這些模式匹配。 對於 MySQL 我試過:
SELECT description
FROM locations
WHERE description
REGEXP '/|([^?]+)\/'
對於 PHP 我試過:
preg_match('/|([^?]+)\/', $string);
/(\w+)?(\w+)/g
測試這個模式
<?php
echo preg_replace("/(\w+)?(\w+)/i", "thi?s", "?");
?>
?
希望這對你有幫助!
我為 PHP 推薦這個:
(?<!\w(?=\? ))\?(?!\s*$)\s*
(?!\\s*$)
是一個負面的前瞻,可以防止?
從匹配是否在句子的末尾(我添加了空格以防萬一)。
(?<!\\w(?=\\? ))
有點復雜。 如果?
前面是一個\\w
字符(通常讀作[a-zA-Z0-9_]
),然后是一個空格。
我不知道mysql是否支持lookbehinds。
|([^?]+)\
這是您當前的正則表達式,我認為您的 PHP 代碼無法運行。 最后的\\
沒有轉義任何東西(實際上,它試圖轉義分隔符)所以... :s
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.