簡體   English   中英

PHP rtrim所有尾隨特殊字符

[英]PHP rtrim all trailing special characters

我正在做一個檢測並從字符串中刪除所有尾隨特殊字符的函數。 它可以轉換如下字符串:

  • 你好世界
  • hello-world /
  • 你好,世界-
  • hello-world /%-+ ...

進入“ hello-world”。

有人不寫很多代碼就知道竅門嗎?

純娛樂

[^a-z\s]+

正則表達式演示

說明:
[^x] :一個不是x 樣本的字符
\\s :“空白字符”:空格,制表符,換行符,回車符,垂直制表符示例
+ :一個或多個樣本

PHP:

$re = "/[^a-z\\s]+/i";
$str = "Hello world\nhello world/\nhello world--\nhellow world/%--+...";
$subst = "";

$result = preg_replace($re, $subst, $str);

嘗試這個

  $string = preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars.

或從字符串中轉義撇號

preg_replace('/[^A-Za-z0-9\-\']/', '', $string);  // escape apostraphe

您可以使用這樣的正則表達式,具體取決於您對“特殊字符”的定義:

function clean_string($input) {
    return preg_replace('/\W+$/', '', $input);
}

它用$替換字符串$末尾不是單詞字符( \\W )的所有字符。 \\W將匹配[^a-zA-Z0-9_] ,因此將替換所有不是字母,數字或下划線的內容。 要指定哪些字符是特殊字符,請使用這樣的正則表達式,將所有特殊字符放在[]括號中:

function clean_string($input) {
    return preg_replace('/[\/%.+-]+$/', '', $input);
}

這是您要尋找的。

([^\\n\\w\\d \\"]*)$

它會刪除字母,數字,空格和換行符以外的所有內容。 只是這樣稱呼它:

preg_replace('/([^\\n\\w\\s]*)$/', '', $string);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM