【发布时间】:2016-08-19 05:22:51
【问题描述】:
我有两个字符串:
String s1 = "The demo 505/rj is bad";
String s2 = " demo zero 4";
String val="demo"、String g = s1 或 s2,以及正则表达式模式:
Pattern p = Pattern.compile("(?<=" + val +")\\s*\\b(?=\\D*\\d)\\S+\\b");
Matcher m = p.matcher(g);
if (m.find()) {
String s = g.substring(m.start(), m.end());
System.out.println(s);
}
两种可能的情况:
- 如果
g = s1、s = 505/rj- 对我来说意味着该模式可以正常工作 - 如果
g = s2,s = zero- 不好 - 因为单词“零”至少不包含一位数字
注意:单词除了字母数字,还可以包含特殊字符
如何修改此模式以解决情况 1 和 2 的问题?
【问题讨论】:
-
为两者工作是什么意思?您的预期输出是什么?
标签: java regex regex-lookarounds