我想用ColdFusion中的正則表達式用*
替換連字號,空格和問號。它看起來像:用星號替換連字符,空格和問號
ReReplace(txt, "-?\s+\?*","*", "All")
但它不會替換字符串末尾的問號。任何幫助?
我想用ColdFusion中的正則表達式用*
替換連字號,空格和問號。它看起來像:用星號替換連字符,空格和問號
ReReplace(txt, "-?\s+\?*","*", "All")
但它不會替換字符串末尾的問號。任何幫助?
爲了使您的代碼更易讀我會寫這樣的:
<cfscript>
txt = "Hello! testing 1-2-3. How are you?";
foo = ReReplace(txt, "[- ?]","*", "All");
writeDump(foo);
</cfscript>
,將返回:
Hello!*testing*1*2*3*How*are*you*
字符的範圍(方括號)不需要逃避,這使得它更容易閱讀(無論如何!)。值得注意的是,-
是一個範圍內的特殊字符,所以我把它作爲第一個字符。
如果你沒有[ -?]
正則表達式將匹配空間和
?
之間的任何字符返回:
Hello**testing*******How*are*you*
您的建議模式與OP的模式有所不同。你爲什麼認爲它應該有幫助? –
它解決了「我試圖用Coldfusion中的正則表達式替換連字符,空格和問號」的問題,並且我解釋了爲什麼我認爲這是編寫它的更好方法。 –
那麼,這就是爲什麼你添加了感嘆號? OP的正則表達式試圖只匹配*序列中的符號,你的不正確,你的正則表達式將替換複合詞中的連字符。它會破壞字符串,沒有幫助。 –
什麼是你測試對字符串?嘗試用'\ s *'和'\?*'替換'\ s +'爲'\?+':'「 - ?\ s * \?+」'。或者使用' - ?\ s + \?* | - ?\ s * \?+ $''' –
這樣的替代方式,您能否更新您的問題以更明確地表達您想要匹配的內容?你的敘述不清楚它是否是「任何離散的 - ,[空格]或問號」,或確切的序列「 - ?」,或「任何這些字符的任何數字」等。這些都不清楚鑑於你的敘述和你的示例正則表達式模式之間的脫節。 –