K2Software BBS
[記事リスト] [新着記事] [ワード検索] [過去ログ] [管理用]

タイトル Re: 正規表現で読み込み違反のエラー
投稿日: 2007/01/26(Fri) 20:31
投稿者

> エラーメッセージ
> 「モジュール 'ntdll.dll' のアドレス 7C95142E でアドレス 656C7552 に対する読み込み違反がおきました。」

私の環境でもエラーが発生することを確認しました。

ちょっと横道に外れますが。

この正規表現をちゃんと処理できない正規表現エンジンは結構あるかもしれません。

問題点1:キャレット(^)を行頭の意味で2箇所使っている。
 キャレットが正規表現の先頭にあれば行頭の意味に解釈してもらえるのは確実ですが、「|」でつないだ直後だとそのように解釈しないエンジンがありえそうです。

問題点2:グループの番号が重複する可能性がある
 今回の正規表現の場合、「|」でつないだ前後でグループの番号が重複します。これがエラーを引き起こす原因になりかねません。

 今回の場合、同じ意味の
「^((?:UNION ALL\n\n)?[^\n]+)\n {4}([^\n]+)\n([^\n]+)\n {4}([^\n]+\n)」
のように記述すると置換できます。

 ちなみに、多分転写ミスだと思いますが、置換文字列は
「\1 \2 \3 \4」
ではなく、
「$1 $2 $3 $4」
が正しいと思います。


- 関連一覧ツリー (▼ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
おなまえ
Eメール
タイトル
メッセージ   手動改行 強制改行 図表モード
参照先
暗証キー (英数字で8文字以内)
  プレビュー

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No 暗証キー