簡體   English   中英

刪除所有非單詞字符,但“。”

[英]Remove all non-word characters but “.”

刪除文件名中所有非單詞字符的最簡單方法是什么?

顯然需要在擴展之前的末尾處的點,因此除了“ . ”之外的所有符號應該被刪除,如“ - ”或“ * ”或“ ?.

像這樣的東西:

$filename = preg_replace("/[^\.]\W/", "", $filename);

為什么不:

$filename = preg_replace('/[^.\w]/', '', $filename);

這將刪除任何不是單詞字符或句點的字符。

我會用這樣的東西:

$filename = preg_replace("/\W(?=.*\.[^.]*$)/", "", $filename);

正則表達式將匹配文件名中的任何非單詞字符(此處的“單詞字符”由類[a-zA-Z0-9_] ),只要存在擴展名即可。

這也將考慮可能的文件名,例如file.name.txt並正確返回filename.txt (第一個點不是文件擴展名的點)。

我的偏好是

$filename = preg_replace('/[^.a-zA-Z]/', '', $filename);

如果你想要添加數字,那么

$filename = preg_replace('/[^.a-zA-Z0-9]/', '', $filename);

暫無
暫無

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

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