我正在尝试使用正则表达式来查找 (xxx) xxx-xxxx 形式的电话号码,这些电话号码都在带有凌乱 html 的文本文档中。
文本文件的行如下:
<div style="font-weight:bold;">
<div>
<strong>Main Phone:
<span style="font-weight:normal;">(713) 555-9539
<strong>Main Fax:
<span style="font-weight:normal;">(713) 555-9541
<strong>Toll Free:
<span style="font-weight:normal;">(888) 555-9539
我的代码包含:
Pattern p = Pattern.compile("\\(\\d{3}\\)\\s\\d{3}-\\d{4}");
Matcher m = p.matcher(line); //from buffered reader, reading 1 line at a time
if (m.matches()) {
stringArray.add(line);
}
问题是当我将简单的东西放入模式中进行编译时,它仍然没有返回任何内容。如果它甚至不识别像 \d 这样的东西,我要如何获得电话号码?例如:
Pattern p = Pattern.compile("\\d+"); //Returns nothing
Pattern p = Pattern.compile("\\d"); //Returns nothing
Pattern p = Pattern.compile("\\s+"); //Returns lines
Pattern p = Pattern.compile("\\D"); //Returns lines
这对我来说真的很困惑,任何帮助都将不胜感激。