如何在公式中搜索并使用perl对字符串部分进行一些更改

时间:2012-04-18 05:28:10

标签: regex perl

您好我想从公式中提取子字符串并稍后对它们进行一些更改并将它们放回原处:

((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])

任何想法?

1 个答案:

答案 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查找并替换字符串中的所有匹配项。

\)匹配文字括号。