2012-04-18 7 views
-4

の文字列の部分にいくつかの変更を行うことができます。どのように私は式に検索し、こんにちは、私は式からサブ文字列を抽出し、後でそれにいくつかの変更を行い、このようなものを、それらを元に戻すにしたい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)) 

と私は何かのtobeginningと、このような各部分の終わりを追加したい:

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

回答を提供する機会を得るために、実際の公式を投稿してください。 – MarkSchoonover

+0

違いは何ですか?それは数式の構造の間にドットを持つ文字のいくつかのセットは、私が書いたものとまったく同じですが、今私は '/'、 '*'、 '+'で分割しています。それらを検索して文字列を検索して、もう一度置き換えますが、私はまだそれを解決するためにいくつかのアイデアが必要でした。 と私は正規表現の背後にある全体のアイデアは、正確な数式の権利を持っていないパターンを一致させると思いますか?数式は変更できますが、パターンは同じです! –

答えて

2

のルールが少し不明であるが、あなたがFoo!/![hg]で、各文字の英数字の実行(プラス分離ドット)を囲むように、かつ).[boo]でそれぞれ閉じ括弧を交換しようとしているようです。右?

次にあなたがこれを行うことができます:

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

説明:

s/abc/def/は、元$subject変数を変更し、 "置換文字列defとどんな正規表現abc試合代替" を意味します。

[\w.]+は、dfhkuyhu.hkjgd.hjkhのような文字列と一致します。置換文字列の$&は、一致するテキストを参照します。 /gフラグは、文字列中のすべての一致を見つけて置き換えるようにPerlに指示します。

\)は、リテラルカッコと一致します。

+0

ありがとうございました。私はたくさんのループと頭痛で仕事をしていました。ありがとうございます。 –

+1

@AshkanAbdnkhn:聞いてよかったです。将来のStackOverflowエクスペリエンスをさらに向上させるために、Jon Skeetの優れた「完全な質問の仕方」(http://tinyurl.com/so-hints)を読んでください。コミュニティへようこそ! –

+0

これは私の前の質問だったので、将来はそれをしてくれますし、最後に文字列の末尾に同じサフィックスを追加する方法も教えてください。この $ input =〜s/\)\ */\)[boo] \ */g; $ input =〜s/\)\/\)。[boo] \/g; は、文字列の最後に最後の文字が欠けています –

関連する問題