用于检查字符串是否具有特定位数的正则表达式

Kar*_*ik 1 java regex

我的数据库中有地址信息和一些垃圾,我必须检查字符串是否有我需要处理的邮政编码.你能解释一下如何检查一个字符串是否有5位数字.例如,

String addr = 10100 Trinity Parkway, 5th Floor Stockton, CA 95219; 
Run Code Online (Sandbox Code Playgroud)

因此它必须匹配此字符串,因为它具有5位数的邮政编码.有没有办法检查使用Java正则表达式?

更新:

String addr = "10100 Trinity Parkway, 5th Floor Stockton, CA 95219"; 
String addressMatcher = "\\d{5}";
if(addr.matches(addressMatcher)){
System.out.println(addr);
}
Run Code Online (Sandbox Code Playgroud)

上面是我在获得答案后使用的代码,但没有正则表达式匹配并打印addr.我做错了吗?此致,Karthik

dle*_*lev 9

简单的表达式是".*\\d{5}$",表示你想要任何字符0次或更多次,然后任何数字5次,然后是字符串的结尾.请注意,这说明需要转义Java字符串中的斜杠.

如果字符串末尾可能包含更多字符,则可以附加.*到表达式以匹配这些字符.但是,这可能最终会匹配地址中的数字,因此请确保您的数据采用一致的预期格式.

在这种情况下,正则表达式可能不够,因为并非所有5位数字实际上都是邮政编码.同样,一些邮政编码可能包含额外的数字(通常-在前五位后面.)