^\\[(\\d{2}:\\d{2})|(\\d{2}:\\d{2}-\\d{2}:\\d{2})\\]=\\(.*\\)$ 匹配不上,哪里错了?

kinghome 2018-11-01 01:56:20

我在用 ^\\[(\\d{2}:\\d{2})|(\\d{2}:\\d{2}-\\d{2}:\\d{2})\\]=\\(.*\\)$
匹配 [12:00]=(1?A:B) 总是匹配不上,不知道表达式哪里有问题 ?




public static final String REGEX_TIMESCALE_MULTIPLE = "^\\[(\\d{2}:\\d{2})|(\\d{2}:\\d{2}-\\d{2}:\\d{2})\\]=\\(.*\\)$";

public static void main(String[] args) {
if (Pattern.matches(REGEX_TIMESCALE_MULTIPLE, "[12:00]=(1?A:B)")){
//匹配上执行
}
}

...全文
101 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
十八道胡同 2018-11-01
  • 打赏
  • 举报
回复
  String REGEX_TIMESCALE = "^\\[\\d{2}:\\d{2}(-\\d{2}:\\d{2})?\\]=(.*)$";

if (Pattern.matches(REGEX_TIMESCALE, "[12:00]=(1?A:B)")) {
System.out.println("匹配成功");
}else{
System.out.println("匹配不成功");
}
if (Pattern.matches(REGEX_TIMESCALE, "[12:00-17:00]=(1?A:B)")) {
System.out.println("匹配成功");
}else{
System.out.println("匹配不成功");
}
nayi_224 2018-11-01
  • 打赏
  • 举报
回复
少一个括号。
public static final String REGEX_TIMESCALE_MULTIPLE = "^\\[((\\d{2}:\\d{2})|(\\d{2}:\\d{2}-\\d{2}:\\d{2}))\\]=\\(.*\\)$";
你这个匹配的是[12:00或12:00-13:00]=(1?A:B)
kinghome 2018-11-01
  • 打赏
  • 举报
回复
引用 1 楼 LCL_data 的回复:

String REGEX_TIMESCALE = "^\\[\\d{2}:\\d{2}\\]=(.*)$";

if (Pattern.matches(REGEX_TIMESCALE, "[12:00]=(1?A:B)")) {
System.out.println("匹配成功");
}else{
System.out.println("匹配不成功");
}
}


谢谢 -----
"^\\[(\\d{2}:\\d{2})|(\\d{2}:\\d{2}-\\d{2}:\\d{2})\\]=\\(.*\\)$";
我这样写,是因为有两种情况。
[12:00]=(1?A:B) [12:00-17:00]=(1?A:B)
等号后面,必须跟着一对括弧,括弧里面的内容可以任意。


十八道胡同 2018-11-01
  • 打赏
  • 举报
回复

String REGEX_TIMESCALE = "^\\[\\d{2}:\\d{2}\\]=(.*)$";

if (Pattern.matches(REGEX_TIMESCALE, "[12:00]=(1?A:B)")) {
System.out.println("匹配成功");
}else{
System.out.println("匹配不成功");
}
}

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧