最佳正则表达式,用于在任意字符串中提取单个十进制数

Reg*_*kie 0 java regex optimization

假设目标字符串一方面是任意的,但另一方面保证包含一个十进制数字(1位或更多位数),我提出了以下常规正则表达式模式:

.*?(\d+).*?
Run Code Online (Sandbox Code Playgroud)

因此,如果目标字符串是"(这是数字200)",例如,Matcher.group(1)将包含该数字.

是否有更优化的正则表达式模式(或非正则表达式方法)来提取此数字?

"最佳"我的意思是最快(可能具有最少的CPU周期).仅限Java.

Ole*_*kov 5

只是(\ d +)绰绰有余.

  • @Regex Rookie:`matches`只是stoopid,因为Java无限的愚蠢决定重新定义匹配在编程中一直意味着什么.永远不要使用它.既然你可以使用`find`来实现`matches`,但是不能使用`matches`来实现`find`,那就意味着`matches`是不必要的混乱,只会让人感到困惑.很多人都发现了. (2认同)