
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
いまいち、どういうふうに検索したいのか伝わってこないのですが
例えば「斉藤櫻井」「斉藤桜井」「斎藤櫻井」「斎藤桜井」を検索したいのなら
((斉|斎)藤)((櫻|桜)井)で検索できると思いますが
正規表現を使うまでもないような気もします。
また何の情報も無しに
「斎藤」に対して「斉藤」や「齋藤」も検索させたいのだとすると
あらかじめ「斉斎齋」を関連付けるような仕組みが必要です。
とりあえずファイルを読み込む仕組み等の基本的なところ
は絶対に必要なわけですから、まず自分なりに作ってみては?
それで行き詰ったら改めて質問すると良いと思いますが。
No.5
- 回答日時:
souorceに格納されるデータの形式は分からないままですが、それも含めての設計だと解釈して回答します。
ループ回数が気になるとのことですので、BoostであればRegexではなくSpiritを使うのはどうでしょう。
テンプレートを駆使して正規表現的な記述が可能ですので、文字列よりはループ回数が緩和されると思います。
Boost.Spiritであれば、マルチバイト文字に対応させることも可能ですし...
No.4
- 回答日時:
どうもよく分からないのですが...
sourceになる文字列は「あい(う|え)かきく(け|こ)さ・・・」という形式なのですか?それとも、「あいうかきくけさ・・・」や「あいえかきくけさ・・・」のように格納されているのですか?
実際のデータを教えてください。
この回答への補足
たとえばファイル1に「斎藤」「桜井」といった文字列が1000個くらいあり(このさきもっと増えるかもしれません)、
入力された文字列が「斉藤櫻井」だと、字が違うので検索してもマッチしませんよね。
そこで異体字や表記ゆれを登録したテーブルを用意してチェックすると、
「斉藤櫻井」「斉藤桜井」「斎藤櫻井」「斎藤桜井」の4通りになります。
ファイル1の文字列を正規表現のように検索すればいいのでしょうが、繰り返しの処理になるとループの数が多くなるので、入力した文字列をうまく処理してできないかと思ったのです。
No.3
- 回答日時:
No.2
- 回答日時:
>sourceからregexにマッチする部分文字列を探すのではなく、
>regexからsourceにマッチする部分文字列を探すといった感じになるのでしょうか?
ファイル(source)の中から
「あい(う|え)かきく(け|こ)さ・・・」(regex)
にマッチする部分を探す。
file0001.txt~file1000.textがあるとして
file1.txtから
「あい(う|え)かきく(け|こ)さ・・・」を探す
あったら該当部分をout.txtに書き込む。
・
・
・
file2.txtから
・
・
・
file1000.txtまで繰り返す。
boostを使うなら2つ目のURLの
「'置換'はどうやればいいのですか?」が参考になるでしょう。
対象の文字列から該当する文字列が見つかる度に
その部分を置き換えるという処理を行っています。
この回答への補足
説明べたで申し訳ありません。
今の場合「う」と「え」、「け」と「こ」が表記ゆれの部分で、
必ずしも「う」でなく、「え」になる可能性もあるので、それをふまえると
sourceになる文字列を正規表現風にあらわすと「あい(う|え)かきく(け|こ)さ・・・」になると思うんです。
で、fileには「あいうか」「きくこ」といった文字列が入っていて、「あいうか」がマッチするんで、sourceは「きく(け|こ)さ・・・」に。
さらに「きくこ」がマッチして、「さ・・・」と切り出していくということなんですけど。
意図が伝わりますか?
No.1
- 回答日時:
とりあえず開発環境(コンパイラとOS)ぐらいは書いておいた方がいいでしょう。
まず、普通C++のコンパイラには、標準で
正規表現を検出する仕組みはありません。
別途ライブラリやdllが必要です。
一番有名なのがboostですね。
http://www.s34.co.jp/cpptechdoc/article/regexpp/ …
http://www.s34.co.jp/cpptechdoc/aftercare/art_24 …
あい(う|え)かきく(け|こ)さ・・・
と、ある程度文型が決まっているなら検索部分を自分で作っても
良いでしょう。
というかC/C++である必要がないならperlとかの方が簡単かも。
この回答への補足
失礼しました。
開発環境はVisual C++.NET 2002、Windows XPです。
補足すると表記のゆれの可能性がある文字列を入力し、
そのゆれを拾っていくと「検索される対象自体」が正規表現で表されるような形になり、
さらにそれをファイルにある文字列で切り出していく作業です。
教えていただいたページも見ましたが、私がやりたいのは、
sourceからregexにマッチする部分文字列を探すのではなく、
regexからsourceにマッチする部分文字列を探すといった感じになるのでしょうか?
説明が下手ですみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) Excelでの検索結果を含む行だけを表示させたい 5 2023/03/10 17:08
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- その他(コンピューター・テクノロジー) 正規表現の置換で一部の文字列をそのまま残したい 2 2022/05/03 19:19
- オープンソース csvデータのダブルクォーテーションで囲まれた文字内にあるカンマを削除したい 3 2022/09/02 15:17
- その他(ソフトウェア) 一太郎付属の”全件検索”ツールの不具合 3 2023/07/25 15:03
- YouTube 日本語文向けの正規表現が学べるサイトやYouTubeチャンネルがあったら教えてほしいです。 「正規表 6 2022/04/26 07:02
- ドライブ・ストレージ Windows10でのファイル内の文字列検索 SSDに寿命? 4 2022/07/12 03:25
- その他(コンピューター・テクノロジー) 正規表現の置換で数値を合計したいです。 2 2022/10/17 11:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現の逆?
-
VB2005で、正規表現を使いたい
-
正規表現について
-
正規表現です。括弧内にある複...
-
正規表現で( , -, ] を表すと。
-
VBS 正規表現の記号
-
正規表現について
-
正規表現で大文字小文字指定に...
-
特定タグ以外を変換したい
-
正規表現で特定の文字列に一致...
-
C# 正規表現での文字列分割
-
正規表現で行ではなく単語のみ...
-
詳説正規表現はなぜわかりやす...
-
金額を検索する正規表現について
-
1行~複数行をまとめる正規表現
-
エクセル
-
PS4コントローラーをPCでゲーム...
-
【VBA】PDFを2in1で出力したいです
-
WordにURLを載せると
-
エクセルでアルファベットか数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現 秀丸エディタ 行頭か...
-
メールアドレスの正規表現について
-
[VBS] テキストファイルから任...
-
正規表現でシングルクォーテー...
-
正規表現でAND検索はできる...
-
正規表現です。括弧内にある複...
-
第二水準漢字が含まれるか?
-
文章中全ての半角カッコ ( の...
-
grepの正規表現での最短マッチ...
-
正規表現でカウントアップ(?)す...
-
正規表現で囲まれた部分の文字列
-
MFCで正規表現
-
Perl 数値にスラッシュを入れる...
-
XMLファイルある内に書式につい...
-
今までで、正規表現で「これこ...
-
VBSのRegExpの拡張機能を有効に...
-
正規表現で特定文字列を含む場...
-
さくらエディタでGrep検索する...
-
正規表現 使う機会が多いので...
-
ちょうどn文字の連続にマッチす...
おすすめ情報