2011-09-17 12 views
1

後、すべてを置き換えるために、私は次のテキストファイルの内容を持っている:正規表現がマッチ

<?php 
//================ Versions ================ 
$applicatoinversion = '1.2.3.40'; 
$someothervariable = 'td11'; 

$dbversion = '2.3.1.4'; 

Other code here 
?> 

私は、空の文字列と(アプリケーション)バージョン番号以外のすべてを交換する必要があります。だから私は、次のファイルを保存することができます:私はprogrammig言語を使用していないよ

1.2.3.40 

をので、私は交換するだけで、正規表現でそれを行う必要があります。

(?<=\$applicatoinversion = \')(([0-9]\.){1,3}([0-9])+)(?=\';) 

そして前にすべてを一致させるために管理:

(.|\n)*(?= 
(?<=\$applicatoinversion = \')(([0-9]\.){1,3}([0-9])+)(?=\';) 
) 

しかし、私はこだわっている

は、これまでのところ、バージョン番号を一致させることができます。私はバージョン番号の前と後のすべてにマッチしません。ここの指導者は?事前に

おかげ

+0

より良いアプローチは、(ファイルを置き換える)ファイルからバージョン番号を取得し、それを保存することですグループから試合ですべてを置き換え、残りの部分を交換するよりも。私はそれを行う方法がわからない、あなたは正規表現を適用する方法を詳細を提供しませんでした。 – nothrow

+0

@Yossarian 私が言ったように、私は正規表現をする必要があります。 FinalBuilderのGUIを使って正規表現を適用するので、プログラミング言語を使用してファイルを操作することはできません。 – Slava

答えて

2

(?s).*applicatoinversion = '(([0-9]\.){1,3}([0-9])+)'.*

はちょうど1

+0

\ sフラグを除いて、うまくいくようです... – Slava

+0

\ sだけが$ 1に置き換えられていない場合、これには回避策がありますか? – Slava

+0

答えを編集して/ sフラグを正規表現 –