用于匹配 phone 和 WebHarvy 传真号码的正则表达式

Regex to match phone and fax numbers for WebHarvy

示例文本

5950 S Willow Dr Ste 304 
 Greenwood Village, CO 80111
 P (123) 456-7890
 F (123) 456-7890
 Get Directions 

尝试了以下但它也抓取了地址的第一行

(.*)(?=(\n.*){2}$)

也试过

P\s(\(\d{3})\)\s\d+-\d+

但它在 WebHarvy 中不起作用,即使它在 RegexStorm 上起作用

正在寻找一个表达式来匹配 phone 和其中的传真号码。我会使用 WebHarvy

中的表达式

https://www.webharvy.com/articles/regex.html

谢谢

你的第二个模式几乎就是你需要做的。使用 P\s(\(\d{3})\)\s\d+-\d+,您只捕获到第 1 组的 (\(\d{3}) 部分,而您需要捕获整个数字。

我还建议限制上下文:将 P 作为整个单词匹配,或者作为一行中的第一个单词匹配:

\bP\s*(\(\d{3}\)\s*\d+-\d+)

(?m)^\s*P\s*(\(\d{3}\)\s*\d+-\d+)

regex demo,这里是你需要注意的地方:

\b 部分匹配单词边界 (\b),(?m)^\s* 匹配行首 ((?m) 使 ^ 匹配行首一行),然后 \s* 匹配 0+ 个空格。您可以通过将模式替换为 [\p{Zs}\t]*.

来将其更改为仅匹配水平空格