『壹』 java正則表達式使用
你這個問題其實很簡單,只需要一句就可以了。
System.out.println(str.replaceAll(" << .*? > \\(\\$\\{date_min\\}\\) >>"," 8888"));
. 表示:匹配除「\n」之外的任何單個字元。若要匹配包括「\n」在內的任意字元,請使用諸如「[\s\S]」之類的模式。
*表示:零次或多次匹配前面的字元或子表達式。例如,zo* 匹配「z」和「zoo」。* 等效於 {0,}。
?表示:當此字元緊隨任何其他限定符(*、+、?、{n}、{n,}、{n,m})之後時,匹配模式是「非貪心的」。「非貪心的」模式匹配搜索到的、盡可能短的字元串,而默認的「貪心的」模式匹配搜索到的、盡可能長的字元串。例如,在字元串「oooo」中,「o+?」只匹配單個「o」,而「o+」匹配所有「o」。
這里稍微注意下在"<<"加上空格去匹配,這樣就能滿足你的需求了.
『貳』 Java中什麼是正則表達式
正則表達式 就是將一個類型的數據 按照一定方式 寫成正則表達式的形式 這樣可以辨別數據是否符合這一類型的數據 比如我們的身份證號碼 就是有一定的規則的 這樣我們寫一個 正則表達式 和別人輸入的身份證號碼 比對 如果符合這個正則表達式的規則 就是身份證號碼
『叄』 java正則表達式中的 . 表示匹配任意字元,為什麼我這個不對呢
首先,點前面不能有轉義符 ,如果有轉義符點就只能匹配小數點了。
其次,點不能寫在中括弧內,如果寫在中括弧內,依然只能匹配小數點。
所以,你應該把轉義符和中括弧去掉,點就能匹配任意字元了。
完整的Java程序如下:
packageday01;
publicclassTest001{
publicstaticvoidmain(String[]args){
Stringregex=".";
Stringstr="w";
System.out.println(str.matches(regex));
}
}
運行結果:
true
『肆』 java中正則表達式是任意的字元串嗎
是可以的:
public static void main(String[] args) {
String regex="\\([\\w\\W&&[^()]]+\\)";
String input="(d)fsasfaa(dsf dasfkljdfkl)ddd(sf)dasf";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(input);
while(m.find()){
System.out.println("匹配子串:"+m.group(0));
}
}
結果:
匹配子串:(d)
匹配子串:(dsf dasfkljdfkl)
匹配子串:(sf)
『伍』 java用正則表達式判定特殊字元是否,存在就替換的問題
String的replaceAll方法可以使用正則表達式進行搜索並替換,但不改變原字元串,如果需要改變原字元串,則需要用賦值語句:
ss=ss.replaceAll("正則表達式","替換內容");
比如將"aabbcc[{dd}]eeff[{gg}]hhiijjkkll[{mmnn}]oopp"里的[{等特殊符號去掉:
ss=ss.replaceAll("\W","");
『陸』 java正則表達式,我要匹配固定的比如cmd 開頭 中間有數量,任意字元,換行結束。。
^cmd\\w*\\n$
『柒』 java有關正則表達式,我想匹配一個字元串中的任意字元,怎麼辦
"\."是被轉意了的,是要匹配一個「點」,不用加「\\」,直接用「."就可以了
『捌』 JAVA正則表達式獲取特定的字元串
^ 和 $ 他們是分別用來匹配字元串的開始和結束,以下分別舉例說明:
"^The": 開頭一定要有"The"字元串;
"of despair$": 結尾一定要有"of despair" 的字元串;
那麼,
"^abc$": 就是要求以abc開頭和以abc結尾的字元串,實際上是只有abc匹配。
"notice": 匹配包含notice的字元串。
你可以看見如果你沒有用我們提到的兩個字元(最後一個例子),就是說 模式(正則表達式) 可以出現在被檢驗字元串的任何地方,你沒有把他鎖定到兩邊。
接著,說說 '*', '+',和 '?',
他們用來表示一個字元可以出現的次數或者順序. 他們分別表示:
"zero or more"相當於{0,},
"one or more"相當於{1,},
"zero or one."相當於{0,1}, 這里是一些例子:
"ab*": 和ab{0,}同義,匹配以a開頭,後面可以接0個或者N個b組成的字元串("a", "ab", "abbb", 等);
"ab+": 和ab{1,}同義,同上條一樣,但最少要有一個b存在 ("ab", "abbb", 等.);
"ab?":和ab{0,1}同義,可以沒有或者只有一個b;
"a?b+$": 匹配以一個或者0個a再加上一個以上的b結尾的字元串.
要點, '*', '+',和 '?'只管它前面那個字元.
你也可以在大括弧裡面限制字元出現的個數,比如
"ab{2}": 要求a後面一定要跟兩個b(一個也不能少)("abb");
"ab{2,}": 要求a後面一定要有兩個或者兩個以上b(如"abb", "abbbb", 等.);
"ab{3,5}": 要求a後面可以有2-5個b("abbb", "abbbb", or "abbbbb").
現在我們把一定幾個字元放到小括弧里,比如:
"a(bc)*": 匹配 a 後面跟0個或者一個"bc";
"a(bc){1,5}": 一個到5個 "bc."
還有一個字元 '│', 相當於OR 操作:
"hi│hello": 匹配含有"hi" 或者 "hello" 的 字元串;
"(b│cd)ef": 匹配含有 "bef" 或者 "cdef"的字元串;
"(a│b)*c": 匹配含有這樣多個(包括0個)a或b,後面跟一個c的字元串;
一個點('.')可以代表所有的單一字元,不包括"\n"
如果,要匹配包括"\n"在內的所有單個字元,怎麼辦?
對了,用'[\n.]'這種模式.
"a.[0-9]": 一個a加一個字元再加一個0到9的數字
"^.{3}$": 三個任意字元結尾 .
中括弧括住的內容只匹配一個單一的字元
"[ab]": 匹配單個的 a 或者 b ( 和 "a│b" 一樣);
"[a-d]": 匹配'a' 到'd'的單個字元 (和"a│b│c│d" 還有 "[abcd]"效果一樣); 一般我們都用[a-zA-Z]來指定字元為一個大小寫英文
"^[a-zA-Z]": 匹配以大小寫字母開頭的字元串
"[0-9]%": 匹配含有 形如 x% 的字元串
",[a-zA-Z0-9]$": 匹配以逗號再加一個數字或字母結尾的字元串
你也可以把你不想要得字元列在中括弧里,你只需要在總括弧裡面使用'^' 作為開頭 "%[^a-zA-Z]%" 匹配含有兩個百分號裡面有一個非字母的字元串.
要點:^用在中括弧開頭的時候,就表示排除括弧里的字元。為了PHP能夠解釋,你必須在這些字元面前後加'',並且將一些字元轉義.
『玖』 正則表達式「\\d+\\.{0,1}\\d*」是什麼意思
因為Java正則表達式需要轉義反斜杠,所以有兩個反斜杠,實際的正則表達式為\d+\.{0,1}\d* 這個正則表達式表示整數或者小數
\d+表示1個或多個0到9的數字,是整數部分(至少是一位整數的整數部分)
\.{0,1}表示0個或1個小數點,因為點在正則表達式中表示任意字元,所以這里需要用轉義符\,使它變回原來的小數點的意思,{0,1}表示0或1個,也就是可以有或者沒有小數點
\d*表示0個或多個0到9的數字,是小數部分,0個時表示這個數沒有小數部分,只有整數部分.
所以整個正則表達式表示整數(比如 123)或者帶整數部分的小數(比如 123.12)(包括0.01這樣的小數)
『拾』 Java:正則表達式求解,前四位為任意字元,後四位為數字,該如何判斷呢
public static void main(String[] args) {
try {
List<String> list=null;
list.get(0);
} catch (NullPointerException e) {
System.out.println(e);
}
}