java - 根据格式过滤字符串
问题描述
我有一个字符串列表,我想根据模式parta-partb-partc 或 parta-partb-no-partc过滤掉它们。no 可以是任何正整数,而字符串的其他部分是固定的。
For example
parta-partb-partc
parta-partb-1-partc
parta-partb-1xyz-partc
parta-partb-123-partc
parta-partb-abc-partc
通过正则表达式过滤后,我的列表应该是
parta-partb-partc
parta-partb-1-partc
parta-partb-123-partc
我的问题是如何编写结合这两个条件的正则表达式?
解决方案
String#matches
与以下正则表达式模式一起使用:
parta-partb-(?:\d+-)?partc
示例脚本:
String input = "parta-partb-1-partc";
if (input.matches("parta-partb-(?:\\d+-)?partc")) {
System.out.println("MATCH");
}
请注意,String#matches
默认情况下会将模式应用于整个输入字符串,因此不需要开始/结束锚点。
推荐阅读
- java - 关于异常和部分函数的Java问题
- r - RcppRoll 或 CumSum 滞后于动态窗口
- php - 在 php 脚本中找不到类
- php - PHP curl 将表单数据发布到 REST API
- javascript - 如何使用 prebid.js 处理来自 GPT 的多个广告位
- python - 命令迁移未执行
- apache - 当用户浏览网站上的其他页面时保持相同的 url 参数
- javascript - 带有 Vuejs 的 Laravel 在没有 php artisan serve 的情况下运行项目
- asp.net-core - 如何在同一个 .net core 3 应用程序中使用剃须刀页面和控制器?
- python - 在 Pandas DataFrame 中查找数值最接近的行