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