【发布时间】:2016-04-10 18:16:46
【问题描述】:
我正在尝试编写一个只能从给定字符串中找到数字的正则表达式。我的意思是:
输入:My number is +12 345 678. I have galaxy s3, its symbol 34abc.
输出:345 和 678(但不是 +12、3 来自单词 s3 或 34 来自 34abc)
我只尝试了数字 (\d+) 并与白色和文字字符组合。最接近的是^\d$ 但这不起作用,因为我的数字是较大字符串的一部分,而不是整个字符串本身。能给我一个提示吗?
------- 编辑
看起来我只是不知道如何检查一个字符而不实际将它变成结果。就像“空格字符后面的数字(没有这个空格)”。
【问题讨论】:
-
你可以合并
"\\s",这是任何空白字符 -
您认为哪些字符是分隔符(即可能围绕数字的字符)?从您的示例中,很明显空格和点是分隔符,而“加号”不是。其他字符呢:减号、逗号、下划线等?
-
我不知道如何使用它,这样它就会成为模式但不会成为输出的一部分(空格字符后面的数字但没有它)
-
Alex,一开始只能是空格。那我再想点别的。
-
根据您的定义,
678不适合匹配项,因为它后面跟着一个.点。
标签: regex