正则表达式实现不了这个功能,请教?

weifeng378 2018-05-30 08:52:56
16或18个字符串,中最后一位是X或x其他位是数字:我怎么实现不了。。。。

   
// 匹配这几种情况怎么匹配不了:
// 41232619110204545X
// 412326198882828232
// 1111111111111111
// 222222222222222X
public static boolean itIs(String s)
{

if (s.matches("((\\d{15}) | (\\d{17}))[xX\\d]"))
{
return true;
}
return false;
}
...全文
455 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

"^(?:\\d{15}|\\d{17})[xX]$"
nayi_224 2018-05-31
  • 打赏
  • 举报
回复
public static boolean itIs(String s) { if (s.matches("(\\d{15}|\\d{17})[Xx\\d]")) { return true; } return false; } 正则表达式中空格有实际意义......
maradona1984 2018-05-31
  • 打赏
  • 举报
回复
\d换成0-9
oyljerry 2018-05-30
  • 打赏
  • 举报
回复
因为结尾的\d会影响,比如只用匹配41232619110204545X的16个数字。 ((\d{15})|(\d{17}))[Xx] 再加上\d{16,18} 两个判断

62,628

社区成员

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

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