![](/img/trans.png)
[英]Check if string contains two word or special character with underscore between in PHP
[英]PHP extract word that contains special character from a string
我有一個字符串:
$str = " Côte-d'azure ! (3000) limousin - limousine ";
我需要提取一些單詞並將其放入數組中。 最終得到:
array (
0 => "Côte-d'azure",
1 => "limousin",
2 => "limousine"
);
所以我嘗試了:
preg_match_all("/[a-zA-Z]+/", $str, $all);
但這忽略了特殊字符ô , '和-
請任何建議?
使用Unicode模式u
和字符屬性 :
preg_match_all('/\p{L}[\p{L}\\\\\'-]+/u', mysql_real_escape_string($str), $all);
這需要一個(Unicode)字母,然后匹配盡可能多的其他Unicode字母,反斜杠,連字符和撇號。 如果希望其他標點符號不分隔單詞,請將其包括在字符類中。
請注意5個反斜杠。 編譯字符串時,將刪除三個反斜杠,因為其中兩個反斜杠轉義了后面的反斜杠,而最后一個反斜杠轉義了'
。 因此,正則表達式引擎僅接收2個反斜杠。 這些由正則表達式引擎解釋為一個文字反斜杠。 不幸的是,在使用PHP時,無法使用少於4個反斜杠來表示一個文字反斜杠。
嘗試
if (preg_match('/[^a-zA-Z0-9]+/', $your_string, $matches))
{
echo ' symbol encountered !!';
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.