用于匹配 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]*
.
来将其更改为仅匹配水平空格
示例文本
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]*
.