“.” 是特殊字符,正確表示應(yīng)該是“\\.”。
成都創(chuàng)新互聯(lián)公司-云計算及IDC服務(wù)提供商,涵蓋公有云、IDC機(jī)房租用、綿陽主機(jī)托管、等保安全、私有云建設(shè)等企業(yè)級互聯(lián)網(wǎng)基礎(chǔ)服務(wù),歡迎咨詢:18982081108
另外還有replace ,replaceAll ,這兩者都是由正則表達(dá)式類庫實現(xiàn)的,但是 replace 采用的是字符串原有的意思來替換,而 replaceAll 則是按照正則表達(dá)式的字符串來替換,正則表達(dá)式中有 15 個元字符,是有特殊意義的,使用時需要轉(zhuǎn)義,這 15 個字符分別是
( ? ?[ ? ? { ? ?\ ? ?^ ? ?- ? ?$ ? ? ** ? ?} ? ?] ? ?) ? ?? ? ?* ? ?+ ? ?. ?
轉(zhuǎn)義時可以采用兩種方式:
正則表達(dá)式中表述上述字符,需要在前面加上“\”,但是“\”是 Java 中的特殊字符,在 Java 代碼中用“\\”表示正則表達(dá)式中的“\”。
在需要保留本身意義的前后加上 \Q 和 \E,把特殊字符放在這里面就成普通字符了。
若想表示一個“\”,在 Java 代碼中需要使用“\\\\”。
這需要的是正則表達(dá)式,和java沒什么太大的聯(lián)系。
到網(wǎng)上搜一下你想要的的正則表達(dá)式,然后按java的語法比較就可以了!
一般都是使用正則表達(dá)式,如下代碼:\x0d\x0apublic static final String DEFAULT_QUERY_REGEX = "[!$^*+=|{}';'\",/?~!#¥%??*——|{}【】‘;:”“'。,、?]"; \x0d\x0a \x0d\x0a/** \x0d\x0a * 判斷查詢參數(shù)中是否以特殊字符開頭,如果以特殊字符開頭則返回true,否則返回false \x0d\x0a * \x0d\x0a * @param value \x0d\x0a * @return \x0d\x0a * @see {@link #getQueryRegex()} \x0d\x0a * @see {@link #DEFAULT_QUERY_REGEX} \x0d\x0a */ \x0d\x0apublic boolean specialSymbols(String value) { \x0d\x0a if (StringUtil.isBlank(value)) { \x0d\x0a return false; \x0d\x0a } \x0d\x0a Pattern pattern = Pattern點抗 pile(getQueryRegex()); \x0d\x0a Matcher matcher = pattern.matcher(value); \x0d\x0a \x0d\x0a char[] specialSymbols = getQueryRegex().toCharArray(); \x0d\x0a \x0d\x0a boolean isStartWithSpecialSymbol = false; // 是否以特殊字符開頭 \x0d\x0a for (int i = 0; i
回答于?2022-12-11