java - 在java中提取已知模式的子串

标签 java string substring extract

我正在处理包含我要提取的子字符串的字符串。子字符串始终采用“USX”形式,其中 US 是字符串“US”,X 是任意长度的整数。

例如,考虑以下字符串:

  • “美国 21 世纪”
  • “US9432”
  • “US121390”
  • “US7”

对于以下字符串,我想提取粗体文本。

str1 = somerandomstuff 129 moreRand US2 $#@# o

str2 = US231 random!@@!

str3 = apples or@nges 12 US1294

我已经四处寻找这样做的方法,但没有成功。关于如何解决这个问题的任何想法?

最佳答案

您可以使用正则表达式实现它。使用正则表达式 (US\\d+) 您将获得匹配“US”后跟任意长度整数(最小值为 1)的组

import java.util.regex.Matcher;
import java.util.regex.Pattern;

...

Matcher matcher = Pattern.compile("(US\\d+)").matcher(str1);
if (matcher.find()) {// if it matched the pattern
    String result = matcher.group(0);// the group captured by the regex
}

关于java - 在java中提取已知模式的子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50865760/

相关文章:

javascript - 在 Javascript 中使用正则表达式标记字符串

java - 在 Java 中替换字符串中特定位置的子字符串

C++11 正则表达式子串匹配

Python string.split for循环中的多个值

java - 如何将字符串从一个 JFrame 传递到现有 JFrame

java - 无法在 JMC 中为 Java 应用程序和 Eclipse IDE 打开飞行记录器

java - 使用 Lucene 空间搜索/DateRangePrefixTree 进行日期范围查询?

string - 原始字符串是否算作其自身的子字符串?

java - PreparedStatement 在 IN 子句中包含数千个参数

java - 给定数据类型如何影响重写成员变量