【发布时间】:2016-11-22 20:41:21
【问题描述】:
我将 excel 文件转换为 CSV 文件,然后将其转换为字符串。
问题是正则表达式无法正常工作
我想检测这种文字:
MYW Pkg、MYW Pkg + 快速服务餐饮、MYW Pkg + 餐饮、MYW Pkg + 豪华餐厅,
房间 + 门票 + 快餐服务
我有一个字符串数组。 所以我需要知道一个模式,我试试这个但它没有检测到它:
Pattern.compile("([A-Z]{3})+(\\s)+([A-Za-z]{3})+(\\s)+(\\+)");
例如,我尝试匹配“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");
}
}
问候。
【问题讨论】:
-
您要匹配上述字符串的哪些部分。我要指出的两件事是 1)
(?)很奇怪/很可能没有必要,2)您正在寻找[A-Z]+就在\\+之前(即使Pkg和+之间有空格) . -
@Sam 我至少尝试匹配“MYW Pkg +”,而 anubhava (?) 不区分大小写?
-
内联不区分大小写的修饰符看起来像
(?i:[A-Z]),但你可以只使用[A-Za-z] -
仍然没有达到任何结果:(我将正则表达式添加到问题中
-
向我们展示更多代码