【MS-Word ワイルドカード or VBScript.RegExp】

和英混在文を校正しています。チェック対象の文章が、以下のルールに適合しているかを検証する Word 付属のワイルドカード検索か、VBE に記述する VBScript.RegExp を教えてください。
宜しくお願いします。

原則ルール
1. 半角英数・半角記号と全角文字の間には半角スペース 1 つを入れなければならない

ルールの例外
1. 全角のかぎかっこ (「」『』) などと半角英数・半角記号が隣接する際は半角スペースは不要
2. 全角の句読点 (、。) と半角英数・半角記号が隣接する際は半角スペースは不要
3. 半角かっこ (()) と、かっこの内側の全角文字との間には半角スペースは不要

MS-Word のワイルドカード検索か、VBA の VBScript.RegExp を使用した正規表現でこの問題を解決したいです。
行頭と行末 (= 改行) の存在にも注意してください。

宜しくお願いします。

※この質問文自体が、そのルールに沿って書かれていますので参考にしてください。

回答の条件
  • 1人1回まで
  • 登録:2008/02/01 21:46:12
  • 終了:2008/02/07 10:13:56

ベストアンサー

id:airplant No.1

airplant回答回数220ベストアンサー獲得回数492008/02/03 11:16:26

ポイント100pt

Wordのワイルドカードでは、大文字小文字を区別できないようでした。

VBScriptの下記パターンでやってみてください。VBScript.RegExpの知識があるという前提でソースは省略します。

私の知識では、1パスでは少し無理そうなので、2パスで行っています。

'1パス目:右側スペースのチェック
pattern1="[\!-\'\)-\~]+[^ \!-\~【】「」『』、。\n]"
' \!-\'\)-\~:ascii順で(を除外した半角文字
' : 検索処理、置換処理など
'2パス目:左側スペースのチェック
pattern2="[^ \!-\~【】「」『』、。\n][\!-\(\*-\~]+"
' \!-\(\*-\~:ascii順で)を除外した半角文字
' : 検索処理、置換処理など

●備考1:全角かっこ「()」は、全角文字と全く同じ扱いにしています。角かっこと同じ扱いにしなくていいですか?

●備考2:半角スペース以外が出たときにそこまでの時点の文字とマッチさせています。マッチさせたくないときは、否定先読み「(?! \!-\~・・・)」に変更ください。

id:Nigitama

返信が遅くなりました。

指定の方法でうまいことできました!

いつもありがとうございます。

全角カッコは全角文字と同じ扱いで大丈夫です。

アスキーの順番で指定できるというのがわかって大収穫です。いろいろと応用もできそうです。助かりました。

2008/02/07 10:13:35

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません