web-dev-qa-db-ja.com

MicrosoftWordで正規表現を使用して検索および置換

正規表現 の記事はもう読んだ。私の願いは、Wordで引用符で囲まれた文字列を操作することです(バージョン2013があります)。

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

例えば:

"こんにちは世界。"

に置き換える必要があります

(こんにちは世界。)

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

しかし、私はそれを試すことに成功しませんでした。

1
Yasmin88

「検索と置換」に関するMicrosoft Word 2007ヘルプ は、「ワイルドカードを使用するチェックボックスをオンにすると、Wordは指定した正確なテキストのみ。」このやや不可解なステートメントは、

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

…そしておそらく他のもの。

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

_@_はone以上の前の文字または式の出現を意味するため(つまり、動作する)、正規表現の_+_のように、これらの命令はnull文字列(つまり、間に何もない2つの連続した引用符)を検出しません。

2
Scott