化学公式这个问题可能不是一个特定的编程问题,但我试图找到化学公式像H20,C02等在scientic文本和我用这个:如何找到与正则表达式
(?<=[\l\u]|\.)\d+
这作品 - 但现在也发现'点'后的每个浮点数:
0.1234 -> 1234 is selected.
是否有机会防止这种情况?提前致谢!
化学公式这个问题可能不是一个特定的编程问题,但我试图找到化学公式像H20,C02等在scientic文本和我用这个:如何找到与正则表达式
(?<=[\l\u]|\.)\d+
这作品 - 但现在也发现'点'后的每个浮点数:
0.1234 -> 1234 is selected.
是否有机会防止这种情况?提前致谢!
您还可能包括negative lookbehind防止以数字在前点前:
(?<=[\l\u.])(?<!\d\.)\d+
它看起来像这样的作品!在我接受之前,我会给它更多的测试,但是谢谢! – Rockbot 2013-03-13 20:39:40
如果你想也匹配像H2O
字符串,CH3CH2CH2CH3
,SiO2
你可以使用:
(?i)\b[a-z]+(?:\d+[a-z]+)*\b
或
\b(?:[A-Z][a-z]?)+(?:\d+(?:[A-Z][a-z]?)+)*\b
也许从t中删除点他向后看? – Bergi 2013-03-13 20:25:06
你究竟想要匹配什么? SMILES格式化的字符串?你能提供一些例子吗? – woemler 2013-03-13 20:25:31
只是像H20或SO2的化学公式,请参阅编辑:) – Rockbot 2013-03-13 20:36:26