帮忙看看正则表达式哪错了

Aishangwan 2010-01-25 11:13:19
正则表达式:/^(\"{1}[^\\n\"<>]*\"{1})?(<{1}(((13[0-9]{1})|150|151|152|153|156|158|159)+\\d{8})>{1})$/
要匹配: "张三"<15911083030>

我在JavaScript中可以匹配,在Java匹配中总是返回false,请大家帮忙看看哪错了。
...全文
76 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿_布 2010-01-25
  • 打赏
  • 举报
回复
^(\\"[^<]+\\"\\<15030303030\\>,)+$
Aishangwan 2010-01-25
  • 打赏
  • 举报
回复
谢谢phyerbarte,去掉/^和$\之后返回true了。
还有个问题字符串是 "张三"<15030303030>,"李四"<15030303030>,.... 请问正则表达式应该怎么写?
phyerbarte 2010-01-25
  • 打赏
  • 举报
回复
/^(\"{1}[^\\n\" <>]*\"{1})?( <{1}(((13[0-9]{1})|150|151|152|153|156|158|159)+\\d{8})>{1})$/

开头的 /^ 和结尾的 $/ 是JS里用的正则起止符,你没去掉吧?
phyerbarte 2010-01-25
  • 打赏
  • 举报
回复

public static void main(String[] args) {
String patternString = "(\"{1}[^\\n\" <>]*\"{1})?( <{1}(((13[0-9]{1})|150|151|152|153|156|158|159)+\\d{8})>{1})";
String input = "\"张三\" <15911083030>";

Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(input);

System.out.println(matcher.matches());
}

返回true呀

62,614

社区成员

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

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