使用正则表达式仅返回整个匹配单词

时间:2015-08-05 15:20:06

标签: c# regex

我有一个字符串"myname 18-may 1234",我只想使用正则表达式从整个字符串"1234"

我尝试使用\b([0-9]*)\b正则表达式,结果给了我"18""1234"

但我只想要"1234"而不是"18"请建议从整个单词中选择"1234"的正确方法。

同时字符串也会发生变化,字符串显示为"18-may 1234 myname""18-may myname 1234"

是否可以 - 只获取1234,而不是18

2 个答案:

答案 0 :(得分:0)

如果您将*中的[0-9]*量词替换为[0-9]{n,},其中n是您至少期望的位数,则正则表达式应仅在您的示例中返回1234如果您使用[0-9]{3,}

答案 1 :(得分:0)

您提供的样本数据看起来像名称和生日,其中年份(3位或更多位数)可以在string的任何位置找到。如果这是真的,那么这个模式将从字符串中提取一个包含3位或更多位数的数字:

\\d{3,}

经过测试@ Regex101