我想使用正则表达式在文本中查找电话号码。我的电话号码公式是:
(?:(?:\+?\d*\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{3})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$
在一行中没有任何其他文本的情况下找到数字。但是,当它位于某些文本中间时,则找不到它。我该如何解决?
以下是带有示例的链接: regexr.com/3rf0l
答案 0 :(得分:2)
这是因为您的正则表达式以$
结尾,这是行/文档末尾的锚点(取决于多行设置)。
例如,在字符串1a2b
中,正则表达式[a-z]$
将匹配b
但不匹配a
,因为它不在字符串末尾,而{{ 1}}将同时匹配。
删除它,它将起作用:
[a-z]