小编mar*_*rkb的帖子

使用标记标签的化学式中的 sed/awk 下标数字

我有数百个文本文件,其中包括化学公式以及包括数值在内的叙述。公式总是以空格开头,但后面可以跟空格、逗号、句点等。

问题是:公式没有格式化为将数字显示为下标,例如:

H2SO4、C5H11OH。

我想将下标格式化为 HTML 标签,例如:

H<sub>2</sub>SO<sub>4</sub>, C<sub>5</sub>H<sub>11</sub>OH
Run Code Online (Sandbox Code Playgroud)

以便下标以 HTML 呈现,例如:

H 2 SO 4 , C 5 H 11 OH

我曾尝试用 Java、php 等来实现这一点,但实现起来必然是混乱和笨拙的。我怀疑有一种优雅的 sed/awk 方法。

显然,解决方案的一部分是制作一个正则表达式,匹配一个字母后跟一个或多个数字作为公式检测机制(可能存在误报,稍后我将手动更正)。然后,给定这样确定的公式,sed 替换需要在每个数字或数字序列之前加上sub标签,并在其后加上子标签闭包。

一定有一个单线可以做到这一点,但我已经无法理解了。

有任何想法吗?

scripting awk text-processing html

7
推荐指数
1
解决办法
324
查看次数

标签 统计

awk ×1

html ×1

scripting ×1

text-processing ×1