【发布时间】:2016-12-13 21:02:58
【问题描述】:
String s2 = "K000";
Pattern p2 = Pattern.compile("/^.*([A-Z])/");
Matcher m2 = p2.matcher(s2);
if (m2.find()) {
int pos2 = m2.end();
a2 = s2.substring(0,pos2);
n2 = s2.substring(pos2);
}
我希望 a2 被赋值为“K”,n2 被赋值为“000”,但 m2.find() 永远不会计算为 true,因此永远不会处理条件语句。我在在线正则表达式测试器上仔细检查了我的正则表达式模式,对于这个字符串和这个模式,它返回 K 作为匹配项。知道我在这里做错了什么吗?
最终,我需要做的是能够从开始 s2 一直分配到最后一个发现到 a2 的国会大厦 alpha 以及在最后一个国会大厦 alpha 到 n2 之后出现的任何小写、数字、特殊字符。
任何帮助将不胜感激。
【问题讨论】:
-
摆脱
/。 -
省略您正在使用的 javascript 正则表达式分隔符,即
Pattern.compile("^.*([A-Z])"); -
Java,javascript,不是一样的吗? ;-P 非常感谢您找出我做错了什么。似乎已经有好几个小时了。