2

这个问题可能不是一个特定的编程问题,但是,我尝试在科学文本中找到 H20、C02 等化学公式,我使用这个:

(?<=[\l\u]|\.)\d+

这有效 - 但现在也找到了“点”之后的每个浮点数:

0.1234 -> 1234 is selected.

有机会防止这种情况吗?提前致谢!

4

2 回答 2

1

您可能还包括一个否定的lookbehind,以防止前面的点前面有一个数字:

(?<=[\l\u.])(?<!\d\.)\d+
于 2013-03-13T20:27:14.837 回答
1

如果您还想匹配 , 之类的字符串,H2O可以使用:CH3CH2CH2CH3SiO2

(?i)\b[a-z]+(?:\d+[a-z]+)*\b

或者

\b(?:[A-Z][a-z]?)+(?:\d+(?:[A-Z][a-z]?)+)*\b
于 2013-03-13T20:54:13.500 回答