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

时间:2017-10-23 12:22:50

标签: regex string multiline

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

这是多行字符串;

123-(455)
Office365@gmail.com

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

[(0-9),-]+

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

获取数字

我看了几个正则表达式,但似乎没有让我的情况工作。非常感谢帮助。感谢。

这是另一个例子;

电话 (209)123-2345,(345)123-7890 还有1个 电子邮件 xxx87@aol.com,abc87@lycos.com 雇用 这里有一些随机文字 这里有一些随机文字,编号为123.

所以我只想从正则表达式中提取下面的电话号码 (209)123-2345,(345)123-7890

2 个答案:

答案 0 :(得分:0)

也许你正在寻找单词边界?您不希望匹配单词Office365中的任何数字。您希望匹配在它们之前和之后具有单词边界的数字。

这就是你需要的:

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

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

试试here

答案 1 :(得分:0)

鉴于您列出的两个示例,这有效:

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

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