質問

いファイルを次のフォーマット:

Data Data
Data
[Start]
Data I want
[End]
Data

たいと思いながら、"み Data I want の間から [Start][End] タグを使用Regex.誰でもできるので、私が、これを契機とすることはできますか。

役に立ちましたか?

解決

\[start\]\s*(((?!\[start\]|\[end\]).)+)\s*\[end\]

これもの [start][end] マーカーです。

他のヒント

\[start\](.*?)\[end\]

Zhichだけのテキストの中間以内にするものである。

$text ="Data Data Data start Data i want end Data";
($content) = $text =~ m/ start (.*) end /;
print $content;

あったかと同じような問題がいまこの方法。

よりまとまったものの落とし穴を使用しregexぐマッチングのタグができるものと期待されます http://faq.perl.org/perlfaq4.html#How_do_I_find_matchi.特に、この営巣タグは本当に必要の本格的なパーサのための解釈されます。

この場合の感度を必要とすることでicはスタンバイ状態にするための質問に対する答えとして記載しています。Perl、 i 修飾:

$ echo "Data Data Data [Start] Data i want [End] Data" \
  | perl -ne '/\[start\](.*?)\[end\]/i; print "$1\n"'
 Data i want 

その他のトリックを使用し *? 概るoffのgreedinessの撮影した。のためのインスタンスが非マッチング 【終了しました】 タグ:

Data Data [Start] Data i want [End] Data [end]

だいていないのかもしれませんしたい捕獲

 Data i want [End] Data

ることができますしながら、使用を正規表現を解析したデータの開閉のタグが必要と思いくかどうかこのパスに行きたいです。の理由で、可能性のタグ巣:場合は営巣のタグがんやがんの言語と言われなくなり通常は、正規表現を中止するための適切なツールを構文解析します。

多くの正規表現の実装などのPCREはperlの正規表現支援、消れを達成するために使用されるこの粗います。ものには次のものが必要でperl)をサポートしていない限り消すことができ実際の原因物を破るかの方法などが多すぎまることが期待される。

ある非常に一般的に引用ブログがついてこのよ http://kore-nordmann.de/blog/do_NOT_parse_using_regexp.html (googleで確認キャッシュを現してきているのでダウンタイム)

れば、これを保障する開始タグを行いながら、終了タグを以下のようです。

\[start\](.*?)\[end\]

ただし、複雑なテキストなどのfollwoing:

[start] sometext [start] sometext2 [end] sometext [end]

しようと問題regex.

現在、以下の例では、引き出しの温泉でリンクページ:

'/<a(.*?)a>/i'

上記の例できる保証はないと思う入れ子の例:

'<a></a>'

なので、この複雑な質問ができないだけで解決する簡単な解答を与えた。

Perlで囲むことができるしたいデータと()'sおよびワイヤーに引っ掛けて引っ張っていただけましたら、おそらくその他の言語で同様の特徴です。

if ($s_output =~ /(data data data data START(data data data)END (data data)/) 
{
    $dataAllOfIt = $1;      # 1 full string
    $dataInMiddle = $2;     # 2 Middle Data
    $dataAtEnd = $3;        # 3 End Data
}

このような問題を引き出しテキストとタグ付スペース文字とドット.)

[\S\s] を使用した

正規表現に一致文字を含む新しいライン

文字が読みに角括弧[]=[Start]および[終了]の検証は、列の値です。 jsfiddle http://jsfiddle.net/muralinarisetty/r4s4wxj4/1/

var mergeFields = ["[sitename]",
                   "[daystoholdquote]",
                   "[expires]",
                   "[firstname]",
                   "[lastname]",
                   "[sitephonenumber]",
                   "[hoh_firstname]",
                   "[hoh_lastname]"];       

var str = "fee [sitename] [firstname] \
sdfasd [lastname] ";
var res = validateMeargeFileds(str);
console.log(res);

function validateMeargeFileds(input) {
    var re = /\[\w+]/ig;
    var isValid;
    var myArray = input.match(re);

    try{
        if (myArray.length > 0) {
            myArray.forEach(function (field) {

                isValid = isMergeField(field);

                if (!isValid){
                   throw e;                        
                }
            });
        }
    }
    catch(e) {        
    }

    return isValid;
}

function isMergeField(mergefield) {
    return mergeFields.indexOf(mergefield.toLowerCase()) > -1;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top