如何从Java Regex中提取整数?

时间:2016-04-13 02:00:32

标签: java regex string

原谅我在java中的新奇,我有以下字符串(下面),我正在尝试清理它并仅提取integer digits。用于实现我的目标的正确java正则表达式是什么:

原始字符串:uint32_t Count "77 (0x0000004D)"

所需输出:77

我试过在正则表达式上阅读Java文档,但我只是更加困惑。我猜EE工程师并不喜欢这种花哨的编码技巧:D

2 个答案:

答案 0 :(得分:0)

您可以利用"\\b"这是一个词边界:

String regex = "\\b\\d+\\b";
Matcher m = Pattern.compile(regex).matcher("uint32_t Count \"77 (0x0000004D)\"");
m.find();
System.out.println(m.group()); //output 77  

"\\d+"找到一个数字子字符串,并用"\\b"包围它,确保它没有嵌入到另一个字/符号中。

答案 1 :(得分:0)

获取模式的更多示例有所帮助,但是根据您给出的内容,我可以想到一个简单的正则表达式,它将该组与给定模式匹配,然后您删除引号并获取整数。

(["](\d{1,})) 

我建议你在here以上更多地使用正则表达式,以便在练习时学习