我想找到号码,不要继续使用£字符。说我有一个字符串:
“2012年国内生产总值为1270亿英镑”
我想仅返回 2012 。
我尝试了[^$][0-9]*
,但这只忽略了$
个字符。试图匹配以数字\b[0-9]*\b
开头和结尾的整个单词,但\b
仅适用于[0-9a-zA-Z]
还有其他建议吗?
答案 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|$)