2

問題の正規表現は見つかりませんでした。バックスラッシュでエスケープするためのexample-regexは常にあります。

しかし、私は囲み文字を2倍にして逃げる必要があります。

例:'o''reilly'

結果:o'reilly

4

1 に答える 1

3
'(?:''|[^']*)*'

二重引用符を含む可能性のある引用符で区切られた文字列と一致します。これが、これらの文字列を見つけるための正規表現です。

説明:

'      # Match a single quote.
(?:    # Either match... (use (?> instead of (?: if you can)
 ''    # a doubled quote
|      # or
[^']*  # anything that's not a quote
)*     # any number of times.
'      # Match a single quote.

引用符を正しく削除するには、次の2つの手順で実行できます。

まず、検索し(?<!')'(?!')てすべての一重引用符を見つけます。それらを何も置き換えないでください。

説明:

(?<!') # Assert that the previous character (if present) isn't a quote
'      # Match a quote
(?!')  # Assert that the next character (if present) isn't a quote

次に、すべてを検索して。''に置き換えます'

于 2013-01-21T11:07:12.523 に答える