原谅我在java中的新奇,我有以下字符串(下面),我正在尝试清理它并仅提取integer digits
。用于实现我的目标的正确java正则表达式是什么:
原始字符串:uint32_t Count "77 (0x0000004D)"
所需输出:77
我试过在正则表达式上阅读Java文档,但我只是更加困惑。我猜EE工程师并不喜欢这种花哨的编码技巧:D
答案 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以上更多地使用正则表达式,以便在练习时学习