使用正则表达式如何在字符串后面提取数字? (输出应该只是数字)

时间:2013-05-21 17:31:13

标签: regex

如何使用正则表达式执行此操作?

示例输入:This is a sentence 1234 with a bunch of other stuff

输出:1234

我知道如果我这样做:(?<=This is a sentence).\d\d\d\d我可以用任何东西替换四位数字。但我想做的恰恰相反:我想用一些东西替换除了匹配之外的所有东西,在这种情况下没有东西(即“”)。

3 个答案:

答案 0 :(得分:1)

使用

替换全部
\D

正则表达式和""是用。替换匹配的术语。

\d表示数字字符。

\D表示非数字字符。

编辑:因为你似乎需要一个非常直接的正则表达式...我会运行两个替换,第一个删除数字前的所有内容,第二个删除数字后的所有内容。

first = replace("This is a sentence 1234 with a bunch of other stuff",".*[Tt]his is a sentence (?=1234)","")
second = replace(first,"\D+.*","")

答案 1 :(得分:1)

我们需要用空""替换所有字符
示例代码:

var="This is a sentence 1234 with a bunch of other stuff";
intVar = var.replaceAll("[a-zA-Z ]", "");

输出为1234

答案 2 :(得分:0)

您将一系列数字与\d+[0-9]+匹配。