• 締切済み

Cの文字列操作

VC6で正規表現を使って以下のXMLから-23の値を取得するつもりですが、 これを正規表現で書く場合、以下のようにすれば良いでしょうか? <?xmlversion="1.0"encoding="SHIFT_JIS"?> <TEST>-23</TEST> char ptn[] = "^<\?xmlversion="""1.0"""encoding="""SHIFT_JIS"""\?><TEST>(-?[0-9]+?)</TEST>$"; この前に、xmlを文字列置換(タブ・スペース・改行等を空文字に置換)させたいのですが、C言語ではどのようにすれば良いのでしょうか? phpでは、 str_replaceを使いますが・・・ ちなみに正規表現ライブラリは、これを使う予定です。 http://www.sip.eee.yamaguchi-u.ac.jp/kou/regex.html

みんなの回答

回答No.1

XML-parserを使わない/使えないワケがあるのでしょうか?

関連するQ&A

  • 内容にテキストを持つタグの属性をXMLSchemaで表現するには?

    すみませんXML初心者です。質問をさせてください。 以下に示すXML文書についてのXMLSchemaは、どのように表現したらよいのでしょうか?教えてください。 よろしくお願いします。 <?xml version="1.0" encoding="Shift_JIS" ?> <root> <sub a="a">テスト</sub> </root>

    • ベストアンサー
    • XML
  • 2回以上繰り返される文字列の削除について

    以下の文字列(置換前)で、-aaa について複数存在しているので、 最初の -aaa を残して残りの -aaa をすべて削除したいと考えています。 1回の正規表現+置換で行いたいのですが、どのようにいすればよいでしょうか? 【置換前】 -bbb -aaa -ccc -aaa -ddd -eee -aaa -fff 【置換後】 -bbb -aaa -ccc -ddd -eee -fff ちなみに、複数回の正規表現+置換を使ってよい場合は、 while (m/( -aaa.*) -aaa/) { s/( -aaa.*) -aaa/$1/; } でできると考えています。(動作確認まではしていないので間違ってるかも)

    • ベストアンサー
    • Perl
  • C#でタグを削除する方法

    htmlファイルをtextBoxに読み込んで、その中にあるタグのみを正規表現で削除したいです。 FileStream file = File.Open ( @"c:\test.html", FileMode.Open ); Encoding enc = Encoding.GetEncoding("Shift_JIS"); reader = new StreamReader( file ,enc); StringBuilder text = new StringBuilder(); while(reader.Peek() != -1) {   string A = reader.ReadLine().ToString();   A = Regex.Replace(A,@"<(([^>]|\n)*)>","");   text.Append(A); } textBox1.Text = text.ToString(); とすると、ある程度のタグは削除できるんですが、<DIV などの大文字で書かれたタグが削除できませんでした。 解る方いらっしょいましたら宜しくお願いします。

  • 正規表現(regex)でパラメータ付き文字列を置換したい

    あるページ内に次のようなjavascriptがあるとします。 javascript:test(1); javascript:test(2); javascript:test(3); javascript:test(4); これらを次のように一度に置換したいわけです。 test_1.txt test_2.txt test_3.txt test_4.txt 正規表現で置換するスクリプトを作っていますが、3行目の書き方をどうしていいかで困っています。 アドバイスお願いいたします。 ---- スクリプトサンプル ------- Set regEx = New RegExp regEx.pattern = "javascript:test\(.*\);" repStr = 「この記述方法がわからない」 Do Until inFile.AtEndOfStream tempLine = inFile.ReadLine repLine = regEx.Replace(tempLine, repStr) outFile.WriteLine repLine Loop

  • xml宣言の文字コード変更

    xhtmlとcssでのコーディングを行った際、途中で「UTF-8」で作成してと言われました。 そのため、作成していたコードの冒頭をshift_jisからUTF-8にかきかえてみたところ、文字化け。ブラウザの表示をUTF-8に変えても化けたままなので、作業にならんと宣言をshift_jisに戻しました。 が、書き換えても文字化けが直りません。 宣言自体を消して保存しなおしたりもしたのですが、以前文字化けたままです。 テキストエディタで見るとちゃんとshift_jisになっているのですが、 これはどうすれば直るものなのでしょうか? 手を入れたのは以下の二行になります。(抜き出してるだけですので実際はheadタグ等を挟んでいます) 初期 <?xml version="1.0" encoding="shift_jis"?> <meta http-equiv="content-type" content="text/html; charset=shift_jis" /> ↓ UTF-8に書き換え <?xml version="1.0" encoding="UTF-8"?> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> ご教授ねがいます。

  • PHPファイル自体と打ち出すものの文字コード

    PHPを使ってガラケー向けページを作っています。 xmlとして書いてるんですが、ドコモに合わせてShift-JISで表示しようと考えています。 PHPファイルはUTF8で書いた方が良いと言うことでそうしてるんですが、PHPファイル自体はUTF8で書かれていても、 <?xml version="1.0" encoding="Shift_JIS"?> というように、xmlの中でShift-JISを指定してやれば文字化けせずにちゃんと表示されるんでしょうか? それともPHPファイル自体もShift-JISで書かないとダメですか? 一応、手持ちのガラケーでは大丈夫なようですけど、機種やキャリアによって変わってくるかもしれないと不安になって質問させていただきました。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 正規表現:囲われた文字列の置換

    シングルクオーテーションで囲われた文字列のシングルクオーテーションの前に文字を追加するように、正規表現を用いて置換しようと考えています。 全角文字は[^\x01-\x7E]で検索できるのはわかったのですが、シングルクオーテーションで囲われて、全角文字を含む場合という表現ができません。 下記のような、文字列を対象としています。置換をするのは、全角文字を含む文字列のみです。  全角文字のみ  半角文字のみ  全角半角文字両方 下記ののように置換したいです。 置換前: '全角文字や半角文字','testです','test'.'テスト'.'てすとtest','123' 置換後: A'全角文字や半角文字',A'testです','test'.A'テスト'.A'てすとtest','123' よろしくお願いします。

  • 正規表現を使った置換処理。大文字の直前に「_」を入れたい

    正規表現を使った置換処理です。 大文字の直前に「_」を入れたいと思っています。 例:htmlLinkStr → html_Link_Str WSHとして以下のようなコードを1行記述しました。 WScript.Echo("htmlLinkStr".replace(/([A-Z]+)/g, "_" + RegExp.$1)); しかし「html_ink_tr」としょぼい結果しかえられません。 「RegExp.$1」の使い方が悪いのかもしれません…。 ちなみにVBSでは以下のコードで成功しています。 ので大きくはずしてはいないと思うのですが… Set regEx = New RegExp regEx.Pattern = "([A-Z]+)" regEx.Global = True MsgBox regEx.Replace("htmlLinkStr", "_$1") JavaScriptでの正規表現の使い方に詳しい方よろしくお願いします。

  • (C#)1バイトの正規表現

    下記のような正規表現による置換をほどこしました。 Buffer=Regex.Replace(Buffer,"^[\x00-\xff]{100}","",RegexOptions.Singleline); 文字列の先頭の100バイトを削除する正規表現ですが、うまく動作しません。 どうも文字コードに問題があるようなのですが、原因のわかる方いらっしゃいますか?

  • 文字列を含まないという正規表現は?

    お世話になります。 例えば、文字「a」を含まないという正規表現は、 "[^a]" となりますが、文字列「abc」を含まないという正規表現はどうなりますでしょうか? "[^abc]" ではだめでしたし、 "[^(abc)]" でもだめでした。 また、改行などの制御文字を含めたどんな文字でもいいという正規表現はどうなりますでしょうか? ".*" では改行などが含まれるときはだめでした。 どうかご教授のほどよろしくお願い致します。 次のサイトは参考にしたサイトです。 正規表現の解説 目次 http://www4.ocn.ne.jp/~kaerume/k2e/regex_top.html#mnu_top