Microsoft Word で正規表現を使用して検索と置換を行う

Microsoft Word で正規表現を使用して検索と置換を行う

私は記事を読みました正規表現すでに。私の希望は、Word (バージョン 2013 を使用) で引用符で囲まれた文字列を操作することです。

引用符を括弧に置き換える必要があります。

例えば:

"こんにちは世界。"

を次のように置き換える。

(こんにちは世界。)

を検索し"*"て に置き換えてみました\(*\)

しかし、私はそれを試みても成功しませんでした。

答え1

Microsoft Word 2007 の「検索と置換」のヘルプワイルドカードを使用するチェックボックスが選択されている場合、Wordは指定したテキストのみを検索します。このやや謎めいた文は、

  • アルファベットのテキストの検索では大文字と小文字が区別されます(ただし、 のような検索式を使用すると大文字と小文字を区別しないこともできます[Hh][Ee][Ll][Ll][Oo])。
  • ストレートクォート(")とカーリークォート(および)は同等ではありません。どちらか一方を検索しても、もう一方を見つけることはできません。

…そしておそらく他にもいろいろ。

したがって、文書に引用符が使用されている場合は、「」を検索してください"([!"]@)"。(Microsoft Wordのワイルドカード検索式は、ない正規表現 –任意の文字を意味するために使用[!qx-z]他のq、、、または よりも、 が他の目的にも使用されるため(真の正規表現でのの役割に相当)、 は前の文字または式の 1 回以上の出現を意味するために使用されます。 は任意の文字列を意味するためx、に特別な意味を割り当てると、 真の正規表現に慣れていないユーザーを混乱させると考えたのでしょう。) 拡張正規表現と同様に、括弧は部分式をグループ化するために使用されます。ドキュメントで中引用符が使用されている場合は、 を検索します。または、 と の両方がある場合は、 を検索します。どちらの場合も、 に置き換えます。は、検索式内の括弧で区切られた最初の (そして唯一の) グループの内容、つまり引用符の間のテキストを参照します。やや紛らわしいですが、ここでの括弧は単なるリテラル文字であるため、引用符を括弧に置き換えた結果が得られます。yz^\@*+“([!“”]@)”[“"]([!“"”]@)["”](\1)\1

注意してください、@つまり1つまたは、前の文字または表現が複数回出現する場合 (つまり、+正規表現のように動作する)、これらの命令では null 文字列 (つまり、間に何もない 2 つの連続した引用符文字) は検索されません。

関連情報