您好我想从公式中提取子字符串并稍后对它们进行一些更改并将它们放回原处:
((dfhkuyhu.hkjgd.hjkh + hgdfjg.uyrepo.uyu + hgdfjg.uyrepo.uyu)/(hgdfjg.uyrepo.uyu))*((khuh.jbmxcn.bnb + hgdfjg.uyrepo.uyu)/(jhxzku.kjkj.jh + hgdfjg.uyrepo.uyu))
我希望在每个部分的开头和结尾添加一些东西:
((Foo!dfhkuyhu.hkjgd.hjkh![hg] + Foo!hgdfjg.uyrepo.uyu![hg] + Foo!hgdfjg.uyrepo.uyu![hg]).[boo]/(Foo!hgdfjg.uyrepo.uyu![hg]).[boo])*((Foo!khuh.jbmxcn.bnb![hg] + Foo!hgdfjg.uyrepo.uyu![hg]).[boo]/(Foo!jhxzku.kjkj.jh![hg] + Foo!hgdfjg.uyrepo.uyu![hg]).[boo])
任何想法?
答案 0 :(得分:2)
规则有点不清楚,但似乎您试图用Foo!
/ ![hg]
围绕每一行字母数字字符(加上分隔点),并替换每个右括号与).[boo]
。正确?
然后你可以这样做:
$subject =~ s/[\w.]+/Foo!$&![hg]/g;
$subject =~ s/\)/).[boo]/g;
<强>解释强>
s/abc/def/
表示&#34;替换正则表达式abc
与替换字符串def
&#34;匹配,修改原始$subject
变量。
[\w.]+
匹配dfhkuyhu.hkjgd.hjkh
等字符串。在替换字符串中,$&
指的是匹配的文本。 /g
标志告诉Perl查找并替换字符串中的所有匹配项。
\)
匹配文字括号。