PHP特定的正则表达式

时间:2017-02-14 13:13:19

标签: php regex

我试图仅定位字符串中非数字字符后面的数字,以便在它们周围添加一些html标记。 目前我能够在每个数字上执行此操作:

$string = preg_replace('/(\d+)/','<sub>\1</sub>', $string ); 

如何定位非数字字符后面的数字呢? 目标是格式化包含化学公式但不包含化学公式的字符串。

实际上20% O2 in N2变为<sub>2</sub><sub>0</sub>% O<sub>2</sub> in N<sub>2</sub>

我希望它是20% O<sub>2</sub> in N<sub>2</sub>

我该怎么做?可能吗?

非常感谢您的帮助

1 个答案:

答案 0 :(得分:4)

  

如何定位非数字字符后面的数字?

对于跟随字母的数字,请尝试使用lookbehind

(?<=[A-Za-z])\d+

See demo at regex101(并替换为<sub>\0</sub>

unicode封信使用\pL instead of [A-Za-z]u flag