我想查找不带有 £ 字符的数字。假设我有一个字符串:
“2012年国内生产总值为1270亿英镑”
我只想返回2012 年。
我试过[^$][0-9]*
了,但这只会忽略$
角色。试图匹配以数字开头和结尾的整个单词,\b[0-9]*\b
但\b
仅适用于[0-9a-zA-Z]
还有什么建议吗?
一种可行的选择(使用http://gskinner.com/RegExr进行测试)是:
(?<![£0-9])[0-9]+
这使用否定的lookbehind 来排除£。0-9 的附加排除是为了防止它在上面除了“2012”之外找到“27”。
这是一个很好的工具,您可以在其中进行尝试。这是执行您要求的示例方法 http://regex101.com/r/iH9uS8
您可以在字符串前面加上空格并搜索正则表达式,\s[0-9]+
这意味着“单词的数字前缀,以数字开头”这将排除以 $、£ 或除数字以外的所有其他单词开头的所有单词。
这对我有用:
(?:^|\\s)(\\d+)(?:\\s|$)