-5

嗨,我想从公式中提取子字符串,稍后对它们进行一些更改,然后将它们放回去,如下所示:

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

任何想法?

4

1 回答 1

2

规则有点不清楚,但似乎你试图用Foo!/包围每一个字母数字字符(加上分隔点) ![hg],并用 . 替换每个右括号).[boo]。正确的?

然后你可以这样做:

$subject =~ s/[\w.]+/Foo!$&![hg]/g;
$subject =~ s/\)/).[boo]/g;

解释:

s/abc/def/意思是“用替换字符串替换任何正则表达式abc匹配def”,修改原始$subject变量。

[\w.]+匹配字符串,如dfhkuyhu.hkjgd.hjkh. 在替换字符串中,$&指的是匹配的文本。该/g标志告诉 Perl 查找并替换字符串中的所有匹配项。

\)匹配文字括号。

于 2012-04-18T06:27:26.110 回答