Java 如何根据条件拆分正则表达式模式
我希望匹配文本中以nm或µm为单位的所有值。下面是匹配20nm或20nm的正则表达式模式Java 如何根据条件拆分正则表达式模式,java,regex,annotations,Java,Regex,Annotations,我希望匹配文本中以nm或µm为单位的所有值。下面是匹配20nm或20nm的正则表达式模式 public Pattern Value = Pattern.compile("\\d*\\.?\\d*(\\s?[nNμµ][mM])"); 如果其单位为nm或µm,如何编程使其仅与值匹配?您可以使用捕获组捕获值: public Pattern Value = Pattern.compile("(\\d*\\.?\\d*)(?:\\s?[nNμµ][mM])"); 此处的值将包含在第1组中 您还可以使
public Pattern Value = Pattern.compile("\\d*\\.?\\d*(\\s?[nNμµ][mM])");
如果其单位为nm或µm,如何编程使其仅与值匹配?您可以使用捕获组捕获值:
public Pattern Value = Pattern.compile("(\\d*\\.?\\d*)(?:\\s?[nNμµ][mM])");
此处的值将包含在第1组中
您还可以使用:
此处仅匹配该值。使用:
另外,至少必须设置一个数字。将
[nNμµ][mM]
更改为[nµ][mM]
?或者我不明白你的意思…我想他希望输出是20纳米,而不是20纳米。
public Pattern Value = Pattern.compile("\\d*\\.?\\d*(?=\\s?[nNμµ][mM])");
public Pattern Value = Pattern.compile("(?i)\\d+\\.?\\d*(?=\\s*[nµ]m)");