java - 如何匹配给定的正则表达式模式以从字符串中获取子字符串
问题描述
我有一个字符串用于 ex-“Abc Xyz Def OSSV-1810-017466-AB01 Def Utv”如何编写一个正则表达式来计算“OSSV-1810-017466-AB01”等格式并仅从任何给定的字符串中提取它?
什么是尝试:
public class RegexTest {
public static void main(String[] args) {
String str = "Abc Xyz Def OSSV-1810-017466-AB01 Def Utv";
Pattern pattern = Pattern.compile("[a-zA-Z\\-\\0-9\\-\\0-9\\-\\^A-Za-z0-9]");
Matcher matcher = pattern.matcher(str);
System.out.println(matcher.toString());
if(matcher.find()){
System.out.println("found" + matcher.group(1));
}
else{
System.out.println("not found");
}
}
}
解决方案
你可以使用这种模式[A-Z]{4}-\\d{4}-\\d{6}-[A-Z]{2}\\d{2}
。
也matcher.group(1)
改为matcher.group(0)
.
推荐阅读
- recursion - 从 prolog 中的直接映射缓存中获取数据
- google-apps-script - 如何找到我的哪些谷歌工作表脚本有任何定时触发器
- image - Android Image Cropper 不适用于相机中的图像
- r - 按 ID 和时间戳合并两个大型数据集,并在 R 中获取下 n 个时间间隔的测量值
- kubernetes - Prometheus 指标配置
- amazon-web-services - 我有一个角色可以完全访问 SQS,但我仍然无法向 SQS 发送消息
- javascript - 从字符串创建嵌套数组
- javascript - 例如,当我选择明矾时,它会存储它,然后当我选择温和金属时,它会显示两个值(在完成所有计算之后)
- python - 使用 Python/Selenium 抓取文本并将 CSS 格式转换为 Markdown
- unit-testing - 如何在嵌套 HttpService 上用玩笑测试 retryWhen