我正在尝试使用java的string.replaceAll()
或replaceFirst()
方法来编辑从pdf文档中读取的数据。可以返回的一行数据是:
21/1 ** E(6-11)4479 77000327633(U)
我希望只将77000327633
存储到一个变量中,以便使用和查找只能捕获这个11位数字的正确正则表达式。我试图寻找一个正则表达式,但似乎没有什么能给我我想要的结果。
答案 0 :(得分:0)
就是这样:(.*)[ ]([0-9])*[ ](.*)
可以使用$ 2
访问您的值答案 1 :(得分:0)
可以这样做:
String value = "21/1**E (6-11) 4479 77000327633 (U)";
Pattern pattern = Pattern.compile(".* (\\d{11}) .*");
System.out.println(pattern.matcher(value).replaceAll("$1"));
<强>输出:强>
77000327633
NB:这假设您的号码有11位数字且前后有空格。
NB2:这并不意味着完美只是为了表明这里的想法是用一个组定义一个全局模式,并用组的内容替换所有内容