这个问题可能不是特定的编程问题,但是,我试着在科学文本中找到H20,C02等化学式,我用它:
(?<=[\l\u]|\.)\d+
这有效 - 但现在也找到了'dot'之后的每个浮点数:
0.1234 -> 1234 is selected.
有机会阻止这种情况吗?提前谢谢!
答案 0 :(得分:1)
您可能还包含一个negative lookbehind,以防止前一个点前面有一个数字:
(?<=[\l\u.])(?<!\d\.)\d+
答案 1 :(得分:1)
如果您还要匹配H2O
,CH3CH2CH2CH3
,SiO2
等字符串,您可以使用:
(?i)\b[a-z]+(?:\d+[a-z]+)*\b
或
\b(?:[A-Z][a-z]?)+(?:\d+(?:[A-Z][a-z]?)+)*\b