我有一個Java正則表達式:爪哇 - String.replaceAll更換所有字符無法在模式
^[a-zA-Z_][a-zA-Z0-9_]{1,126}$
這意味着:
- 以字母或下劃線字符。
- 後續字符可能包括字母,數字或下劃線。
- 長度在1到127個字符之間。
現在,我想用一個下劃線替換一個字符串,該字符串不在那個正則表達式中。
實施例:
final String label = "[email protected]#";
System.out.println(label.replaceAll("^[^a-zA-Z_][^a-zA-Z0-9_]{1,126}$", "_"));
但結果仍是[email protected]#
。
我該如何「轉換」爲_3_fgh99__
?
因爲「23_fgh99 @#」以「2」開頭,而不是「[a-zA-Z_]」,所以不匹配。 – Maroun
試試'label.replaceAll(「^ [^ a-zA-Z_] |(?<!^)[^ a-zA-Z0-9_]」,「_」)'。它輸出'_3_fgh99__',但。 –
哎呀,似乎我有一個答案後編輯:)。 –