-3

正規表現はシーケンスを認識し、それに基づいてアクションを実行できますか?

例:$ stringを検索するために正規表現が必要です。次に、$ stringの前にあるx文字数に基づいてカウントし、データを抽出します。

誰かが私にこの質問をよりよく言葉で表現したり、リンクを提案したりするのを手伝ってくれたら、それは大いにありがたいです!

4

2 に答える 2

3

正規表現で先読みと呼ばれるものを探しています。たとえば、以下の正規表現は、文字列の前に5〜7桁ある場合にのみ一致します。つまり、「文字列」を独自の変数に置き換える必要があります。

if (eregi('[[:digit:]]{5,7}(?=string)', $subject)) {
    # Successful match
} else {
    # Match attempt failed
}
于 2012-11-25T07:27:52.933 に答える
1

PHPについてはわかりませんが、後方参照を提供する正規表現エンジンの場合、これでうまくいくはずです(JavascriptスタイルのRegExp作成を使用)。

var reg = new RegExp("^.*(.{"+x+"})"+str);

xが5で、strが「ワールド」の場合、正規表現は次のようになります。

/^.*(.{5})world/

この文字列で実行するsomethinghelloworldと、一致する文字列はになりますhello

PHPの正規表現エンジンが何をサポートしているかはわかりませんが、これは理論上の正規表現のかなり一般的な拡張機能です。

于 2012-11-25T07:26:21.353 に答える