人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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

宜しくお願いします。

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

●質問者: にぎたま
●カテゴリ:コンピュータ
✍キーワード:MS-Word regexp VBA VBE VBScript
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● airplant
●100ポイント ベストアンサー

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

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

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

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

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

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

◎質問者からの返答

返信が遅くなりました。

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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ