[英]Parsing a value using regular expression in java
我正在嘗試使用Java中的正則表達式讀取一行並解析一個值。 包含值的行看起來像這樣,
...... TESTYY912345 .......
...... TESTXX967890 ........
基本上,它包含4個字母,然后是任意兩個ASCII值,后跟數字9,然后是(任意)數字。 而且,我想獲取值912345和967890。
這是我到目前為止的正則表達式,
... TEST [\\ x00- \\ xff] {2} [9] {1} ...
但是,這會跳過9並解析12345和67890。(我也想包括9)。
謝謝你的幫助。
你很親密 匹配TEST\\\\p{ASCII}{2}
后,捕獲整個組(9\\\\d*)
。 這樣,您將捕獲9
和以下數字:
String s = "...... TESTYY912345 ......";
Pattern p = Pattern.compile("TEST\\p{ASCII}{2}(9\\d+)");
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println(m.group(1)); // 912345
}
請參閱我的評論以獲取有效的表達式"TEST.{2}(9\\\\d*)"
。
final Pattern pattern = Pattern.compile("TEST.{2}(9\\d*)");
for (final String str : Arrays.asList("...... TESTYY912345 .......",
"...... TESTXX967890 ........")) {
final Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
final int value = Integer.valueOf(matcher.group(1));
System.out.println(value);
}
}
在ideone上查看結果:
912345
967890
這將匹配示例中的XX
和YY
任意兩個字符( 行終止符除外),並且將在9
之后加上任何數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.