多行输入 - 使用正则表达式提取数字

Multine line input - extract numbers using regex

我有一个多行输入字符串,我只想提取 phone 个数字。 现在我写的正则表达式正在获取数字,但也在第 2 行和第 3 行的文本之间获取数字。例如;

这是多行字符串;

123-(455)
Office365@gmail.com

我正在申请以下正则表达式

[(0-9),-]+

现在这个正则表达式正在提取 123-(456)365。 我不希望我的正则表达式从 office365@gmail.com

获取数字

我看过几个正则表达式,但似乎没有一个适合我的情况。非常感谢您的帮助。谢谢。

这里还有一个例子;

Phone (209) 123-2345, (345) 123-7890 还有 1 个 电子邮件 xxx87@aol.com, abc87@lycos.com 就业 这里有一些随机文本 这里有一些随机文本,编号为 123。

所以我只想从正则表达式中提取 phone 以下的数字 (209) 123-2345,(345) 123-7890

也许您正在寻找单词边界?您不想匹配 Office365 这样的词中的任何数字。您想要匹配前后有单词边界的数字。

这就是你需要的:

\b[(0-9),-]+(\b|\n)

我必须添加 \n 因为没有它不匹配右括号,因为新行显然不是单词边界。

试试看 here.

鉴于您列出的两个示例,这是可行的:

^[(0-9),-]+$

只需指出允许的字符是行首和行尾之间唯一允许的字符