我希望匹配文本中具有单位nm或μm的所有值。下面是匹配20 nm或20 nm
的正则表达式public Pattern Value = Pattern.compile("\\d*\\.?\\d*(\\s?[nNμµ][mM])");
如果它具有单位nm或μm
,我如何对其进行编程以仅匹配该值答案 0 :(得分:0)
您可以使用捕获组来捕获值:
public Pattern Value = Pattern.compile("(\\d*\\.?\\d*)(?:\\s?[nNμµ][mM])");
此处的值将包含在第一组中。
您也可以使用lookarounds:
public Pattern Value = Pattern.compile("\\d*\\.?\\d*(?=\\s?[nNμµ][mM])");
此处您只会匹配该值。
答案 1 :(得分:0)
public Pattern Value = Pattern.compile("(?i)\\d+\\.?\\d*(?=\\s*[nµ]m)");
此外,至少要强制其中一个数字。