想在[Key No. 3] 306654944587896551585198958148中提取出306654944587896551585198958148
我用表达式 (?<=(\d+]\s*))\d+
在RegexTester中测试成功。在java中却不成功
public static void main(String[] args) {
String regEx="(?<=(\\d+]\\s*))\\d+";
String str ="[Key No. 3] 306654944587896551585198958148";
char[] er =new char[str.length()];
Arrays.fill(er, ' ');
Pattern pattern =Pattern.compile(regEx);
Matcher m =pattern.matcher(str);
while(m.find()){
System.out.println(m.group());
Arrays.fill(er, m.start(),m.end(),'^');
}
System.out.println(str);
System.out.println(new String(er)); }没找到匹配项目
我用表达式 (?<=(\d+]\s*))\d+
在RegexTester中测试成功。在java中却不成功
public static void main(String[] args) {
String regEx="(?<=(\\d+]\\s*))\\d+";
String str ="[Key No. 3] 306654944587896551585198958148";
char[] er =new char[str.length()];
Arrays.fill(er, ' ');
Pattern pattern =Pattern.compile(regEx);
Matcher m =pattern.matcher(str);
while(m.find()){
System.out.println(m.group());
Arrays.fill(er, m.start(),m.end(),'^');
}
System.out.println(str);
System.out.println(new String(er)); }没找到匹配项目
String pattern = "\\d+\\]\\s*(\\d+)";
Matcher m = Pattern.compile(pattern).matcher(str);
while(m.find())
{
System.out.println(m.group(1));
}
像你所说的Java中目前不支持的正则语法在哪能查到呢?