正则表达式,排除以特定字符开头的数字

时间:2013-10-22 10:02:09

标签: java regex

我想找到号码,不要继续使用£字符。说我有一个字符串:

  

“2012年国内生产总值为1270亿英镑”

我想仅返回 2012

我尝试了[^$][0-9]*,但这只忽略了$个字符。试图匹配以数字\b[0-9]*\b开头和结尾的整个单词,但\b仅适用于[0-9a-zA-Z]

还有其他建议吗?

4 个答案:

答案 0 :(得分:4)

一个可行的选项(使用http://gskinner.com/RegExr进行测试)是:

(?<![£0-9])[0-9]+

这使用负面的lookbehind来排除£。除了“2012”之外,额外排除0-9是为了防止它在上面找到“27”。

答案 1 :(得分:1)

您可以在字符串前加上空格并搜索正则表达式\s[0-9]+,它将表示“数字前缀”,以数字开头“这将排除所有以$,£或除数字以外的所有内容开头的单词。< / p>

答案 2 :(得分:1)

这是一个很好的工具,您可以尝试这些。这是一个做你问的样本的方法  http://regex101.com/r/iH9uS8

答案 3 :(得分:0)

这对我有用:

 (?:^|\\s)(\\d+)(?:\\s|$)