3

我想查找不带有 £ 字符的数字。假设我有一个字符串:

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

我只想返回2012 年

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

还有什么建议吗?

4

4 回答 4

4

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

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

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

于 2013-10-22T10:05:31.023 回答
1

这是一个很好的工具,您可以在其中进行尝试。这是执行您要求的示例方法 http://regex101.com/r/iH9uS8

于 2013-10-22T10:17:54.390 回答
1

您可以在字符串前面加上空格并搜索正则表达式,\s[0-9]+这意味着“单词的数字前缀,以数字开头”这将排除以 $、£ 或除数字以外的所有其他单词开头的所有单词。

于 2013-10-22T10:05:23.313 回答
0

这对我有用:

 (?:^|\\s)(\\d+)(?:\\s|$)
于 2013-10-22T10:13:13.770 回答