Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Sed:在某些位置上替换字母_Regex_Sed_Chemistry - Fatal编程技术网

Regex Sed:在某些位置上替换字母

Regex Sed:在某些位置上替换字母,regex,sed,chemistry,Regex,Sed,Chemistry,我有一个结构如下的文件: N1H3O1 C2H2 C1H4 H201 C1H1N1 N1H3 C2N1O1P1H3 P5 我想做的是计算每个公式中的系数之和。因此,期望输出为: 1+3+1 5 2+2 4 1+4 5 2+1 3 1+1+1 3 3+1 4 2+1+1+1+3 8 5 5 我所做的只是简单地用“+”替换每个字母,然后删除第一个“+” 但是,我想知道如何在sed中使用分支和流操作符以更合适的方式进行操作 输入的问题是使用了0,而不是O,这可能会使为其设计正则表达式变得困难,您可

我有一个结构如下的文件:

N1H3O1 C2H2
C1H4 H201
C1H1N1 N1H3
C2N1O1P1H3 P5
我想做的是计算每个公式中的系数之和。因此,期望输出为:

1+3+1 5 2+2 4
1+4 5 2+1 3
1+1+1 3 3+1 4
2+1+1+1+3 8 5 5
我所做的只是简单地用“+”替换每个字母,然后删除第一个“+”


但是,我想知道如何在sed中使用分支和流操作符以更合适的方式进行操作

输入的问题是使用了
0
,而不是
O
,这可能会使为其设计正则表达式变得困难,您可以看到:

除此之外,只需添加
([^A-Z]+)
,就可以捕获数字


但是,您可能不希望使用正则表达式执行此任务,因为除了
0
之外,您的数据是非常结构化的,您可以编写一个脚本来执行此任务

最少的工作量是最好的方法:-)。。。听起来你有一个完美的
sed
ish解决方案。不要去找塞德的麻烦,你很快就会发现的。此外,如果您真的需要帮助,您需要在Q.Good luck.H201的主体中包含代码。H201应该是H2O1吗?(哦,不是零)
([^A-Z]+)*([0-9]+)