1

たとえば、「s」のトリプレット間のテキストを一致させようとしています。

"""ここにいくつかのテキスト"""

ここにいくつかのテキストをキャプチャしたいと思います。これは問題なく機能していますが、「s」のトリプレット間のテキストにスラッシュが含まれている場合に問題が発生します/。たとえば、「」「これは機能しません/機能しません」。

"""これは機能しません/機能しません""""""ここにいくつかのテキスト"""

次に、一致は最初の "" "を無視し、2番目の終了" ""まで一致するため、一致は次のようになります。

これは機能しません/機能しませんここにいくつかのテキスト

私たちが望むのはこれだけではありません/動作しません。私が使用している正規表現は次のとおりです。

(?:"{3})([\p{Alnum}|\p{Punct}|\p{Space}]*)(?:"{3})

メモとしてキャプチャグループを使用しています。

4

2 に答える 2

1

貪欲/怠惰な数量詞の問題のようです。レイジーマッチングの場合はに変更*します。*?

すなわち(?:"{3})([\p{ALnum}|\p{Punct}|\p{Space}]*?)(?:"{3})

于 2012-07-16T09:48:54.280 に答える
0

これにより、望ましい結果が得られます(rubular.comでテスト済み)。

正規表現:"""\s*([\S]+)\s+([\S]+)\s+([\S]+)\s*"""
入力:""" This doesn/'t work """ """ Some text here """
一致:""" This doesn/'t work """""" Some text here """

マッチグループ:

Match 1
1.  This
2.  doesn/'t
3.  work
Match 2
1.  Some
2.  text
3.  here
于 2012-07-16T09:49:01.673 に答える