Regex の正規表現について

解決


koo  2005-01-28 09:08:53  No: 56183

エスケープ文字を「\」としたとき、エスケープされていないセミコロンを空文字に置換したいと思い次のようなパターンを指定したのですが「未終了な[]です。」のようなエラーが出てしまいます。

パターン regex.Replace(str, "([^\\]);", "\1")

やりたいこと

変換前 : str = "てすと;テスト\;テスト"

返還後 : "てすとテスト\;テスト"
                 ↑ここのセミコロンだけを消したい

秀丸・K2Editor では予定通りの動作をするのですが、Regex クラスのパターンの指定が悪いのでしょうか?

わかる方がいましたらご教授お願いします。


多分  2005-01-28 10:23:49  No: 56184

C の文字列で \ を示すのは \\ です


YuO  2005-01-28 10:42:20  No: 56185

RegexクラスとはどこのRegexクラスですか?

.NET FrameworkのSystem::Text::RegularExpressions::Regexであれば,
多分さんの書かれたことの他に,置き換え先が\1では問題になります。
1番目のグループへ置き換えるのは,
http://www.microsoft.com/japan/msdn/library/ja/cpgenref/html/cpconsubstitutions.asp
にあるとおり,$1だからです。

まぁ,この場合,置換構成体を使うよりも,
http://www.microsoft.com/japan/msdn/library/ja/cpgenref/html/cpcongroupingconstructs.asp
のゼロ幅の負の後読みアサーションを使った方がよいでしょう。
先頭にある;に,[^\\];はヒットしません。
#S"(?<!\\\\);"→System::String::Emptyという置換。


koo  2005-01-29 07:59:49  No: 56186

Yuo さんありがとうございます。
また、質問が不十分ですみませんでした。

私が知りたかったのは .NetFramework の Regex クラスでした。

自分的には多少正規表現を知っていると思っていたのですがまだまだ奥は深いようですね・・・

後読みアサーションは知りませんでした。もう少し正規表現も勉強しようと思います。
ありがとうございました。


hhh  2005-01-30 05:36:18  No: 56187

※ 解決 タイトル 件数 最終
更新日  最終
発言者  
    gifの表示 1 2005/01/29 origi 
    gifの表示 1 2005/01/29 origi 
 解決 Regex の正規表現について 4 2005/01/28 koo 
 解決 map を char* で参照するには 5 2005/01/28 origi 
    MSFlexGridのクラスを追加するには? 1 2005/01/28 GOジャグ 
 解決 ウィザードバーのメンバ関数 9 2005/01/28 名古屋 
 解決 フレームってないんですか? 9 2005/01/27 masa
    SNMPv2  Trapの受信方法 1 2005/01/27 くっき〜 
 解決 キャビネットファイルを作るには 18 2005/01/26 初心者 
    自作OCXを表示したいんですが


hhh  2005-01-30 05:37:04  No: 56188

Visual C++ Q & A 掲示板
[戻る] [使用上の注意] [新規質問] [過去のフォルダ一覧] 
--------------------------------------------------------------------------------

掲示板の全トピックから単語: を  
※印のトピックを   
過去  日分のトピックを  /   

※ 解決 タイトル 件数 最終
更新日  最終
発言者  
    gifの表示 1 2005/01/29 origi 
    gifの表示 1 2005/01/29 origi 
 解決 Regex の正規表現について 4 2005/01/28 koo 
 解決 map を char* で参照するには 5 2005/01/28 origi 
    MSFlexGridのクラスを追加するには? 1 2005/01/28 GOジャグ 
 解決 ウィザードバーのメンバ関数 9 2005/01/28 名古屋 
 解決 フレームってないんですか? 9 2005/01/27 masa
    SNMPv2  Trapの受信方法 1 2005/01/27 くっき〜 
 解決 キャビネットファイルを作るには 18 2005/01/26 初心者 
    自作OCXを表示したいんですが 4 2005/01/26 たく 

 解決 UDPでの送信処理 4 2005/01/25 GOジャグ 
 解決 UDPでの送信処理 2 2005/01/25 GOジャグ 
    プログレスバーのキャンセルボタンを押すには? 2 2005/01/25 akey 
 解決 ディレクトリ選択ダイアログに選択されたディレクトリを表示するには? 5 2005/01/25 マーチ 
    ボタンの上にマウスポインタがきたときにボタンのキャプションを取得して表示するには? 6 2005/01/25 みい 
 解決 UDPでの受信処理 5 2005/01/25 GOジャグ 
 解決 ビットマップを使用して波形の表示をするには 9 2005/01/25 YANA 
 解決 WTLでシンプルリバーのバンドのドラッグの通知を受け取るには? 3 2005/01/25 山田  
    ダイアログボックスのエディットコントロールを横に並べて、垂直方向に同時にスクロールさせるには? 1 2005/01/24 どら 
    VC7で可変個引数のマクロを作成するには? 3 2005/01/23 代替案 

    C++で画像にフーリエ変換を施すには? 7 2005/01/22 准 
 解決 VC++.NET 2002の出力windowに文字を表示するには? 3 2005/01/22 kossy 
 解決 String型について 11 2005/01/22 魔法使いの見習い 
    アンチ入り画像を綺麗に表示するには? 2 2005/01/22 SAI 
 解決 HDCの制限 7 2005/01/21 瀬戸っぷ 
 解決 実行エラー 9 2005/01/21 初心者 
 解決 RegEnumKeyExについて 3 2005/01/21 どら 
 解決 レジストリのアンインストール情報に登録されているアプリケーションをすべて取得するには? 4 2005/01/20 どら 
    ウィンドウを常に最大化にしておきたい。 2 2005/01/20 める 
 解決 メタファイル(EMFファイル)を解析したいのですが 4 2005/01/20 MixLang初心者 

 解決 システムトレイでのメニュー? 3 2005/01/20 役満太郎 
 解決 マウスドラッグしたまま領域外に出たのを調べるには 3 2005/01/19 kossy 
 解決 サービスプログラムからODBCを利用してデータベースに接続するには? 2 2005/01/19 あすか 
    金額をフォーマットするには? 6 2005/01/19 YuO 
 解決 Stringクラスをキャストするには? 5 2005/01/19 ひで 
 解決 APIを用いてODBCデータソース登録を行うには? 3 2005/01/18 ドゥーエ 
 解決 画面の制御を移すには? 2 2005/01/18 ひで 
 解決 VC++6.0でAPM(Aldus Placeable Metafile)形式のWMFデータを作成するには? 2 2005/01/18 VC/Cad初心者 
    ソケット通信でタイムアウトするには? 4 2005/01/18 (noname) 
    dll から呼び出し側のアプリケーションポインタをとるには? 3 2005/01/17 てつや 

 解決 構造体を持つ構造体の定義時での初期化 7 2005/01/17 kossy 
    アドレス帳 2 2005/01/17 RAPT 
    自作の子ウィンドウを2つ以上表示するには? 10 2005/01/16 Ban 
    ウィンドウプロシージャを共有したい 4 2005/01/16 シャノン 
    プロセスが使用中のファイルを知るには? 2 2005/01/16 シャノン 
 解決 DoModal関数で呼び出されたダイアログのListViewにカラムを追加するには? 2 2005/01/16 ドゥーエ 
    キー入力ができなくなる 1 2005/01/16 chose 
    ISAPI filter でHTMLのパラメータを取得する方法について 1 2005/01/14 がいすか 
 解決 CreateProcessについて 5 2005/01/14 けい 
    ClassViewタブのツリーにクラスが表示されない?? 6 2005/01/14 Ban 

    ネットワークフォルダーに関して 1 2005/01/13 ss 
 解決 デバッグできません 4 2005/01/13 SHUN 
    エディットボックスで  座標を格納するには? 2 2005/01/13 RAPT 
    GNU regex 正規表現を使用するには? 10 2005/01/12 tetrapod 
    行単位でのファイル読み込みするには? 3 2005/01/12 tetrapod 
 解決 vectorの中身表示について 4 2005/01/11 ますたー 
 解決 リストビューをソートするには? 5 2005/01/11 kensaku 
 解決 jpeg表示するには?(基本的なクラスの使い方) 16 2005/01/11 あつし 
 解決 コントロールを引数にするには? 5 2005/01/11 kensaku 
    プログラミングの問題、分かりますか? 24 2005/01/10 monkey 

    EDITBOXの移動 2 2005/01/10 YuO 
 解決 文字列の半角と全角の区別 5 2005/01/08 origi 
 解決 boostの正規表現を使用するには? 13 2005/01/07 デメ 
 解決 API関数の呼び出しを監視するには 6 2005/01/07 MixLang初心者 
 解決 バッチファイル・実行ファイルなどを他のユーザで実行するには? 7 2005/01/07 どら 
 解決 ドライブの有効、無効 5 2005/01/06 ひで 
    XMLをSQL文で読む 2 2005/01/06 通りすがり 
 解決 ダイアログなどで入力したアカウントが特定のローカルグループに所属しているかを確認するには? 5 2005/01/06 どら 
 解決 xmlファイルの書込みについて 2 2005/01/05 hyde 
 解決 モードレスダイアログベース  プログラムでタイトルバーに文字を表示するには? 6 2005/01/05 どら 

    SHFileOperationを利用してWindowsディレクトリにファイルをコピーするには? 3 2005/01/05 どら 
    MFCにて動画再生中に動画のRGB値を取得するには? 2 2005/01/05 ボコノン教徒 
 解決 色分け 14 2005/01/04 初心者 
 解決 ショートカットの「作業フォルダ」を設定するには? 2 2005/01/04 どら 
 解決 テキストファイルの最初の行に文字列を追加→削除するには? 3 2005/01/01 どら 
 解決 bitmapの透過 7 2004/12/31 origi 
    効果音が出せるようにするには? 6 2004/12/30 伊井芳男 
    プログラムの実行結果をダイアログに表示するには 2 2004/12/29 RAPT 
    ファイルを開く画面の表示の変更について 7 2004/12/29 シャノン 
 解決 ディレクトリのコピーにSHFileOperationを利用するとき 8 2004/12/29 シャノン 

    ディレクトリ名を指定してファイル名を取得する関数は? 4 2004/12/28 なーめ 
    ダイアログのサイズ変更について 2 2004/12/27 monkey 
    pdfでCCITTFaxDecodeの使用方法 1 2004/12/27 yoshiki 
    関数の数を数える関数について 3 2004/12/26 (noname) 
 解決 継承を使って効率よくプログラムするには? 3 2004/12/25 chose 
    ダイジェスト認証付きHTTPサーバ負荷ツールを作成するには? 7 2004/12/25 なーめ 
 解決 UDM_SETPOSについて 4 2004/12/25 XiX 
 解決 ファイルを開く時のディレクトリーの指定について 3 2004/12/24 パウダー 
 解決 プロセスの終了処理をするには 5 2004/12/24 cocomo 
 解決 二重起動時のメッセージボックスについて 3 2004/12/24 ひで 

 解決 文字列の中の単語検索 6 2004/12/24 kensaku 
    エディットボックスの改行回数の上限は? 5 2004/12/23 シャノン 
    フォルダ選択ダイアログについて 5 2004/12/22 瀬戸っぷ 
    AVI2.0 (OpenDML) 1 2004/12/22 ERS 
 解決 指定行からのファイル追記書込み 8 2004/12/21 ひで 
 解決 アイコンの非表示 3 2004/12/21 ひで 
 解決 プログラムからプロセスを実行するには? 4 2004/12/21 YuO 
 解決 Erro 14 2004/12/19 初心者 
    WM_LBUTTONUPメッセージについて 29 2004/12/18 svdav 
    string型の==での比較について 17 2004/12/18 dsffs 

過去のフォルダ一覧 
[200109] [200111] [200112] [200201] [200202] [200203] [200204] [200205] [200206] [200207] [200208] [200209] [200210] [200211] [200212] [200301] [200302] [200303] [200304] [200305] [200306] [200307] [200308] [200309] [200310] [200311] [200312] [200401] [200402] [200403] [200404] [200405] [200406] [200407] [200408] [200409] [200410] [200411] [200412] [200501] 

--------------------------------------------------------------------------------

Programming Library


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加