我正在处理包含我要提取的子字符串的字符串。子字符串始终采用“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/