Java--正則表達式-簡單的在字符串中找數字,java--正則表達式
import org.junit.Test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest {
@Test
public void test(){
String line = "This order was placed for QT3000! OK?";
String pattern = "\\d+";
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value: " + m.group() );
} else {
System.out.println("NO MATCH");
}
}
}
其中\d+是匹配1個或者更多個數字。
最後輸出結果為:3000
附上一張正則表達式元字符語法:
子表達式 | 匹配對應 |
^
匹配一行的開頭
$
匹配一行的結尾
.
匹配除了換行符的任何單個字符,也可以利用 m 選項允許它匹配換行符
[...]
匹配括號內的任意單個字符。
[^...]
匹配不在括號內的任意單個字符。
\A
整個字符串的開始
\z
整個字符串的結束
\Z
整個字符串的結束,除了最後一行的結束符
re*
匹配0或者更多的前表達事件
re+
匹配1個或更多的之前的事件
re?
匹配0或者1件前表達事件
re{ n}
匹配特定的n個前表達事件
re{ n,}
匹配n或者更多的前表達事件
re{ n, m}
匹配至少n最多m件前表達事件
a| b
匹配a或者b
(re)
正則表達式組匹配文本記憶
(?: re)
沒有匹配文本記憶的正則表達式組
(?> re)
匹配無回溯的獨立的模式
\w
匹配單詞字符
\W
匹配非單詞字符
\s
匹配空格。等價於 [\t\n\r\f]
\S
匹配非空格
\d
匹配數字. 等價於 [0-9]
\D
匹配非數字
\A
匹配字符串的開始
\Z
匹配字符串的末尾,如果存在新的一行,則匹配新的一行之前
\z
匹配字符串的末尾
\G
匹配上一次匹配結束的地方
\n
返回參考捕獲組號“N”
\b
不在括號裡時匹配單詞邊界。在括號裡時匹配退格鍵
\B
匹配非詞邊界
\n, \t, etc.
匹配換行符,回車符,制表符,等
\Q
引用字符的初始,結束於\E
\E
結束由\Q開始的引用