簡體   English   中英

在Java中使用正則表達式解析值

[英]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

這將匹配示例中的XXYY任意兩個字符( 行終止符除外),並且將在9之后加上任何數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM