【发布时间】:2022-01-22 03:02:30
【问题描述】:
我正在尝试创建两个正则表达式来捕获欧洲车牌所需的字符。
重要的是要提一下
- 将 国家 与其他国家/地区(第一个字母)分开的分隔符始终是
* (asterisk) or a - (hyphen) - 分隔 区 与右侧其他字符的分隔符始终为
a - (hyphen) - 区还可以包含ä,ö,ü等字母
车牌如下所示:
A*S-XXXPA
A*SL-XXXPC
A*SL-XXXSD
A*HA-XXXHV
D*R-XXXXX
D*TS-XXXXX
A*VB-1XXXXX
我用来捕捉国家和地区的正则表达式如下。
String country = "^([A-Z]{1,3})";
String district = "\\h*(\\p{L}{1,3})[-*]";
一旦我从我的字符串中获得了所需的信息,我就会使用 java 代码删除我不需要的信息,这是代码片段:
if (matcher.find()) {
country_region = matcher.group(1);
country_region = country_region.replace("*", "");
country_region = country_region.replace("-", "");
country_region = country_region.replaceAll("\\s+$", "");
}
我捕获国家/地区的正则表达式工作正常,这是一个示例:
我遇到麻烦的是我用来捕获地区的 RegEx。目前它还赶上了国家...
我想我可以删除 RegEx 末尾的星号,但我认为这不是最干净的方法。
谢谢!
【问题讨论】: