正则表达式在java中的两个字符串之间获取数据[重复]

问题描述 投票:-3回答:1

这个问题在这里已有答案:

我试图使用正则表达式从下面的字符串中获取两个字符串“Account:”和“Account”之间的数据。

    String str= "Order Confirmation Account: Sample Account ID: 1111"

我使用的正则表达式是:

    Pattern pattern = Pattern.compile("Account:(.*)Account");
    Matcher matcher = pattern.matcher(str);
    System.out.println("Account name is:"+matcher.group(1));

我得到的实际输出是:

java.lang.IllegalStateException: No match found
at java.util.regex.Matcher.group(Unknown Source)
at WorkingProgram$1.run(WorkingProgram.java:102)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

预期的产出是:

Sample

我的正则表达式出了什么问题?

java regex
1个回答
-1
投票

模式需要匹配整个String,所以

".*Account:(.*)Account.*"
© www.soinside.com 2019 - 2024. All rights reserved.