0

セパレーターを含む可能性のある文字列があります。これはおそらく、次の 3 つのケースがあることを意味します。

First and only paragraph

First and only paragraph with redundant separator
<!-- separator -->

First paragraph
<!-- separator -->
Second paragraph

最初と 2 番目の段落 (存在する場合) を別々に返す正規表現が必要です。これが私がこれまでに試したことです:

(.*)(<!-- separator -->.*)  // fails case 1
(.*)(<!-- separator -->.*)? // fails case 2 and 3 (surprise)

私はちょうどパターンが必要です。

4

1 に答える 1

1

問題はおそらく、.デフォルトでは改行文字と一致しないことです。これは修飾子を使用して変更できますs

/(.*)(<!-- separator -->.*)?/s

s単一行修飾子で、正規表現が入力文字列を「単一行」として扱うようにします。これは、.改行文字にも一致することを意味します。

ただし、量指定子を非貪欲にする必要があります。そうしないと、文字列の最初の文字列.*が最後まで一致<!-- separator -->します。

/(.*?)(<!-- separator -->.*)?/s
于 2012-11-05T09:33:20.090 に答える