我想清理一些數據使用助手exe(C#)。從字符串的開始和結尾刪除非字母數字字符只有
我通過每個迭代串和我想刪除從開始和字符串即端無效字符從$$$helloworld$$$
刪除美元符號。
此使用正則表達式正常工作:\W
。
然而,包含在中間無效的字符串應該被單獨留在家中,即hello$$$$world
是好的,我的正則表達式不應該這個特殊的字符串相匹配。
所以在本質上,我試圖找出語法開始和一個字符串的結尾匹配無效字符,但離開它包含在他們的身上無效字符字符串。
感謝您的幫助!
我想清理一些數據使用助手exe(C#)。從字符串的開始和結尾刪除非字母數字字符只有
我通過每個迭代串和我想刪除從開始和字符串即端無效字符從$$$helloworld$$$
刪除美元符號。
此使用正則表達式正常工作:\W
。
然而,包含在中間無效的字符串應該被單獨留在家中,即hello$$$$world
是好的,我的正則表達式不應該這個特殊的字符串相匹配。
所以在本質上,我試圖找出語法開始和一個字符串的結尾匹配無效字符,但離開它包含在他們的身上無效字符字符串。
感謝您的幫助!
這就是了!
(^[\W_]*)|([\W_]*$)
這regex
說匹配零個或多個非單詞字符在啓動(^
)或(|
)末($
)
下面應該工作:
^\W+|\W+$
^
和$
分別是字符串的開頭和結尾的錨點。中間的|
是OR,因此這個正則表達式意思是「在字符串的開頭匹配一個或多個非單詞字符,或匹配字符串末尾的一個或多個非單詞字符」。
使用^匹配字符串的開始,和$以字符串的結尾相匹配。 C# Regex Cheat Sheet
試試這個,
(^[^\w]*)|([^\w]*$)
使用^匹配「行首」和$匹配「行尾」,即你的代碼應該匹配並刪除^ \ W *和\ W * $
完美!謝謝! – Chris
注意雖然:使用'\ W'將忽略下劃線以及字母數字,所以像*「_ helloworld _」*這樣的東西將保持不變。如果這給OP帶來了問題,那麼他們可以使用'[^ \ W_]'而不是普通的'\ W'。 – LukeH
@LukeH不錯的觀察...會編輯 – Anirudha