arn*_*sss 0 java regex formatter
我将 excel 文件转换为 CSV ,然后将其转换为字符串。
问题是正则表达式不能正常工作
我想检测这种文本:
MYW Pkg, MYW Pkg + Quick Service Dining, MYW Pkg + Dining, MYW Pkg + Deluxe Dining,
房间 + 门票 + 快速服务餐饮
我有一个字符串数组。所以我需要知道一个模式,我尝试这个但它没有检测到它:
Pattern.compile("([A-Z]{3})+(\\s)+([A-Za-z]{3})+(\\s)+(\\+)");
Run Code Online (Sandbox Code Playgroud)
例如,我尝试匹配“MYW Pkg +”,您知道为什么它不起作用吗?
更多代码:
chain 是具有“MYW Pkg”等值的数组
Pattern patPackageDescription = Pattern.compile("([A-Z]{3})+(\\s)+([A-Za-z])+(\\s)+(\\+)");
for (int i = 0; i < chain.length; i++) {
Matcher matPackageDescription = patPackageDescription
.matcher(chain[i]);
if (matPackageDescription.matches()) {
String space = String.format("%1$-" + 50 + "s",
chain[i].toString());
a.append(space + "|\n");
}
}
Run Code Online (Sandbox Code Playgroud)
问候。
matches()方法尝试将整个字符串与模式匹配,以匹配您需要使用find()方法的字符串的一部分。
String str = "MYW Pkg, MYW Pkg + Quick Service Dining, MYW Pkg + Dining, MYW Pkg + Deluxe Dining,";
Pattern patPackageDescription = Pattern.compile("([A-Za-z]{3}\\s)+\\+");
Matcher matPackageDescription = patPackageDescription.matcher(str);
while (matPackageDescription.find()) {
System.out.println(matPackageDescription.group());
}
Run Code Online (Sandbox Code Playgroud)
输出:
MYW Pkg +
MYW Pkg +
MYW Pkg +
Run Code Online (Sandbox Code Playgroud)
看这里的解释。