- 【初心者歓迎】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います。
|