1

我想匹配文本中所有单位为 nm 或 µm 的值。下面是匹配 20 nm 或 20nm 的正则表达式模式

public Pattern Value = Pattern.compile("\\d*\\.?\\d*(\\s?[nNμµ][mM])");

如果它的单位为 nm 或 µm,我如何对其进行编程以仅匹配该值

4

2 回答 2

0

您可以使用捕获组来捕获值:

public Pattern Value = Pattern.compile("(\\d*\\.?\\d*)(?:\\s?[nNμµ][mM])");

此处的值将包含在第一组中。

您还可以使用环视

public Pattern Value = Pattern.compile("\\d*\\.?\\d*(?=\\s?[nNμµ][mM])");

在这里,您只会匹配该值。

于 2013-04-11T15:24:29.540 回答
0

使用前瞻断言

public Pattern Value = Pattern.compile("(?i)\\d+\\.?\\d*(?=\\s*[nµ]m)");

此外,请至少指定一个数字。

于 2013-04-11T15:24:40.753 回答