2017-03-17 11 views
1

と2行目のみを取得します:!^>{1} (.*)$!mをしかし、私はここでしか二行目を一致させたい:私はこの正規表現を持っている正規表現

>> text1 
> text2 
> text3 

が、3行目もあるためmのここに一致しています。フラグmを削除すると、行の先頭ではなく文字列の先頭だけが表示されます。 $は何もしないようです。

は、以下を参照してください。これは動作しますhttps://regex101.com/r/AKYO1f/1

+3

「g」フラグを削除するだけです。https://regex101.com/r/AKYO1f/2 – Shafizadeh

答えて

1

の答えからこれを得た配列の内側に一致(ES)で充填しますgフラグを削除します。これは、すべてのマッチを見つける代わりに、最初のマッチの後にそれを返すでしょう。

理由のちょうど説明:あなたは複数行フラグ^&試合にLINEの開始と終了を持っていますが、複数行フラグに^を削除し、&全体として文字列の先頭と末尾に一致します。

0

希望。

正規表現:>{1,2}[\w\s]+\n\K\>[\s\w\d]+

Regex Demo

0

は、私はあなたがするpreg_match()

するpreg_match()のパターンがマッチした回数を返しますを使用することができると思います。これはpreg_match()が最初のマッチ後に検索を停止するため、0回(一致しない)または1回のいずれかになります。 preg_match_all()は、それがsubjectの終わりに達するまで続けます。 preg_match()はエラーが発生した場合にFALSEを返します。

するpreg_match第3引数()は、与えられた場合、@Shafizadehはちょうど、前記のよう

RegEx in PHP: find the first matching string

関連する問題