正则表达式最后一位数

时间:2011-09-16 07:32:04

标签: regex

我需要从字符串中找到最后一位数字而且我被卡住了。

您能告诉我如何从以下字符串替换最后0:

something[0].moresomething[0].evenmoresomething

3 个答案:

答案 0 :(得分:4)

这会让你得到最后一位数字......也称为“negative lookahead”。

\d(?!.*\d)

如果您在.NET中执行此操作,则替换最后一个字符,例如:

string source = "something[0].moresomething[0].evenmoresomething";
string regEx = @"\d(?!.*\d)";
string result = Regex.Replace(source, regEx, "2");

'result'现在包含字符串“something [0] .moresomething [2] .evenmoresomething”

答案 1 :(得分:3)

试试这个正则表达式:

(?<=\[)0(?=\])(?!.*?\[0\])

它将匹配0

中的最后[]

答案 2 :(得分:0)

你可以这样做

\d(\D*)$

并替换为您想要的任何内容和$1

如果您的号码确实是字符串/行中的最后一个,那么这将有效。 (请参阅评论中的Kirills示例。)

请参阅it here on Regexr

$1在这里是第一个捕获组的内容。这意味着()的内容,即您想要替换的数字之后的所有内容。

\d是一个数字

\D不是数字

$是字符串

的结尾