我正在建立一個正則表達式,該語句允許我用下劃線(_)替換文件名中的句點(。)。正則表達式 - 如何用下劃線替換文件名中的句點
例子:與filename_doc
我已經在快報左右一齣戲,並已制定了,這將是類似\ W {3,4)取代filename.doc - 回暖。 3或4個字符的擴展例如doc,docx,xls,xlsx等
但我無法弄清楚如何只替換期限並保留擴展。
我正在建立一個正則表達式,該語句允許我用下劃線(_)替換文件名中的句點(。)。正則表達式 - 如何用下劃線替換文件名中的句點
例子:與filename_doc
我已經在快報左右一齣戲,並已制定了,這將是類似\ W {3,4)取代filename.doc - 回暖。 3或4個字符的擴展例如doc,docx,xls,xlsx等
但我無法弄清楚如何只替換期限並保留擴展。
你必須逃避.
標誌。試着用以下的正則表達式:
\.(\w{3,4})$
,取而代之的是:
_$1
$1
包含()
我確實有過這段時間,但它似乎已從我的帖子中刪除?但謝謝你的回答,我錯過了1美元。 – 2012-03-08 13:56:08
匹配的字符串只替換最後一個點:
perl: $str =~ s/\.([^.]+)$/_$1/
php: $str = preg_replace('/\.([^.]+)$/', "_$1", $str);
全部替換點:
perl: $str =~ s/\./_/g;
php: $str = preg_replace('/\./', '_', $str);
你爲什麼要用這個正則表達式?幾乎每種語言都支持簡單的字符/字符串替換 - 就像myString.replace('。','_'); – scibuff 2012-03-08 13:45:16
你想只取代最後一個點或全部? – Toto 2012-03-08 13:50:01
我通常只會做你所描述的內容,但由於我將字符串傳遞給另一個系統的一些非常奇怪的限制,我只想替換文件名中包含的句點。 – 2012-03-08 13:51:36