Java Regex:查找一个字符 s 的模式,后跟 5 位数字范围 0-9



我正在尝试使用匹配("正则表达式"(来抛出异常,但我总是出错。有没有办法匹配标题中的模式?例如,模式应为"s98340"或"s12345"。开头只有一个字符,后跟任何 5 位数字。 要捕获异常,请执行以下操作:

try{
if(originalLocation.length() != 6 && originalLocation.matches("s[0-9]{5}"))
throw new IllegalOriginalLocationException("Original Location is invalid.");
}
catch(IllegalOriginalLocationException ex){
System.out.println(ex);
}

当我设置字符串 sr = "s4a234" 时,没有捕获异常。

当您将类似字符串传递给方法s98340时,originalLocation.length() != 6条件返回 false,因此,您将获得当前行为。

由于正则表达式已经匹配仅 6 个字符的字符串,因此删除该条件就足够了:

try {
if(originalLocation.matches("s[0-9]{5}"))
throw new IllegalOriginalLocationException("Original Location is invalid.");
}
catch(IllegalOriginalLocationException ex) {
System.out.println(ex);
}

originalLocation.matches("s[0-9]{5}")行确保字符串以s开头,然后正好有 5 个 ASCII 数字。请记住,默认情况下,.matches()中的模式锚定在字符串的开头和结尾。

intenta con lo siguiente : 尝试 { if(!originalLocation.matches(">^[a-zA-Z]\d\d\d\d\d"(( ...

[a-zA-Z] 下部或上部 [A-Z] 仅更低

我正在测试"s4a234" 和"A12345"和成功!

最新更新