トップページ > プログラム > 2015年01月23日 > 9tnFJzS/

書き込み順位&時間帯一覧

10 位/220 ID中時間01234567891011121314151617181920212223Total
書き込み数0100000000010000100020005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
Regular Expression(正規表現) Part13©2ch.net

書き込みレス一覧

【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
695 :デフォルトの名無しさん[sage]:2015/01/23(金) 01:37:55.25 ID:9tnFJzS/
>>690
そう、そんな感じですけれど、一点だけ違います。
"Name = 1234\r\n"
ではなくて
"Name = \"1234\"\r\n"
です。
ファイルから読み込んだ文字列なので末尾に\r\nが付きますが、それ以外の部分には
\r\nや、それ以外の制御文字などは入りません。
【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
699 :デフォルトの名無しさん[sage]:2015/01/23(金) 11:38:27.61 ID:9tnFJzS/
>>696
>>697
サンプルありがとうございました。
istringstreamもregexも、難しそうなのでふだん使わないので参考になりました。
自分でも作ってみたのですが、
char c_str[] = "Name = \"1234\"\r\n";
string str = c_str;
string::size_type is = str.find("\"") + 1;
string::size_type ie = str.find("\"", is);
string data = string(&str[is], &str[ie]);
いちおう目的は達成できたのですが、こういうやり方はどうでしょうか?
【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
703 :デフォルトの名無しさん[sage]:2015/01/23(金) 16:53:41.82 ID:9tnFJzS/
>>702
文字列には必ずペアでダブルクオーテーションがあることが前提なのですが、
そういう場合でも、エラーチェック処理をするべきでしょうか?
Regular Expression(正規表現) Part13©2ch.net
99 :デフォルトの名無しさん[sage]:2015/01/23(金) 20:13:44.42 ID:9tnFJzS/
#include <iostream>
#include <regex>
#include <string>
#include <locale>
using namespace std;
void main()
{
wcout.imbue(locale("japanese"));
const wchar_t* input = L"Dim str As String = \"テスト。文字列の中に'がある\" 'コメント";
wcout << L"input ->" << input << L"<-" << endl;
const wchar_t* pattern = L"\'.*$";
const wchar_t* replacement = L"";
wregex re(pattern);
wstring result = regex_replace(input, re, replacement);
wcout << L"result->" << result << L"<-" << endl;
}

VB.NETのソースからコメントを全部取り除くプログラムをVC++2013のwregexで
作ってみたのですが、文字列の中にあるシングルクオーテーションにもマッチ
してしまいます。これを回避して、本来のコメントのみにマッチする表現を
教えて下さい。
Regular Expression(正規表現) Part13©2ch.net
100 :デフォルトの名無しさん[sage]:2015/01/23(金) 20:17:47.22 ID:9tnFJzS/
ああ、それとコメントには ' 以外に REM で始まる行もコメントの
ようなので、それにも対応したようなのが出来れば最高です。
よろしくお願いsいます。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。