簡體   English   中英

如何在Java中使用正則表達式提取包含數字和字符的字符串

[英]How do i extract a string containing digits and characters, using regex in java

我有可變數據,我想提取一個長度為6個字符的字符串(包含數字和字符)。

Sample_data =您的設置地址為6B1BC0 TSTSB NFPSNC92

Sample_data2 =您的設置地址為3EC810 P-22A LS02 STA-0213 TSTSA

我的樣本數據的所有字符串都是可變的,除了“ YOUR SET ADDRESS IS”

我需要提取這6個字符的長字符串:“ 6B1BC0”和“ 3EC810”

這是我嘗試做過的事情,但沒有返回任何東西。 我如何修改它以返回“ 6B1BC0”

Pattern P = pattern.compile(“YOUR SET ADDRESS IS \\w+ ([A-Z0-9]{6})”);
Matcher n = p.matcher(result);
If(n.find())
{
    return n.group(0);
}
Pattern P = pattern.compile(“YOUR SET ADDRESS IS\\s+([A-Z0-9]{6})”);

關於"YOUR SET ADDRESS IS ( [A-Z0-9]{6})*"

你快到了。 將模式固定為:

Pattern P = pattern.compile("YOUR SET ADDRESS IS ([A-Z0-9]{6})");

要么

Pattern P = pattern.compile("YOUR SET ADDRESS IS\\s+([A-Z0-9]{6})");

工作程序:

import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.*;

class Test
{
  public static void main (String[] args) throws java.lang.Exception
  {
    Pattern p = Pattern.compile("YOUR SET ADDRESS IS\\s+([A-Z0-9]{6})");
    Matcher n = p.matcher("YOUR SET ADDRESS IS 123456 FOO");
    if (n.find()) {
      System.out.println(n.group(1)); // Prints 123456
    }
  }
}
Pattern p = Pattern.compile("^[a-zA-Z]+([0-9]+).*");
Matcher m = p.matcher("aTesting123anythingTesting");

if (m.find()) {
    System.out.println(m.group(1));
}

暫無
暫無

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

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