我有一个字符串,可以以几种格式之一显示数字:
Name ProductA Price R 3 250
或者
Name ProductA Price R 500
我不知道价格会以哪种格式显示,所以我想同时查找这两种格式。 我知道第一个字符串的正则表达式是:
\\bPrice\\sR\\s\\b*(\\d\\s\\d+)
第二个是:
\\bPrice\\sR\\s\\b*(\\d+)
但是 Regex 会如何检查两者并捕获价格数字?
最佳答案
使 \\s\\d
部分可选,如下所示:
\\bPrice\\sR(?:\\s(\\d))?\\s(\\d+)
-- ^^^^^^^^^^^^^
请注意,可选部分组是非捕获,让您可以通过捕获组 1 和 2 检索价格的相关部分。
关于具有不同格式的 Java Regex 数字提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50448452/