前略
・.NET 2012 のC#をつかっています。 下記のようなマイコンのソースコードから0xXX, 0xXX,... で表記されているデータ部分 すなわち16進数とその区切りカンマだけを C#のプログラムで抽出したと思っています。いろいろやっているのですがうまくゆきません。 リッチテキストに抽出前のソースプログラムを表示して、ボタンをクリックしたら このリッチテキストに抽出された文字列(データ部分)だけを表示したいと思っています。どなたか具体的にコードサンプルで、ご教示いただければ幸いです。
尚、実際に作成したいデータは フォントの構造体からデータ部分のみを抽出したものです。
以上、よろしくお願いします。
例
//-------抽出前--------------
#include "Graphics.h"
#ifdef USE_GOL
#if(GRAPHICS != 0x0306)
#warning "use Graphics Library version 3"
#endif
#if defined __XC32__
extern const char __GOLFontDefault[] ;
const FONT_FLASH GOLFontDefault =
{
(FLASH | COMP_NONE),
};
const char __GOLFontDefault[] =
{
0x00,
0x00,
0x1C, 0x00,
0x7E, 0x00,
0x1B, 0x00,
0x10,
0x94, 0x01, 0x00,
0x10,
0xCA, 0x01, 0x00,
0x11,
0x00, 0x02, 0x00,
0x11,
0x51, 0x02, 0x00,
0x05,
0xA2, 0x02, 0x00,
};
#endif
//-------抽出後-------------
0x00,
0x00,
0x1C, 0x00,
0x7E, 0x00,
0x1B, 0x00,
0x10,
0x94, 0x01, 0x00,
0x10,
0xCA, 0x01, 0x00,
0x11,
0x00, 0x02, 0x00,
0x11,
0x51, 0x02, 0x00,
0x05,
0xA2, 0x02, 0x00,
No.2ベストアンサー
- 回答日時:
提示されている物だけで言うなら、
using System.Text.RegularExpressions;//追加
Regex re = new Regex(@"\{(?<moji>[0-9A-Fa-fx\r\s,]+)\}");
string st = re.Match(richTextBox1.Text).Result("${moji}").TrimStart().TrimEnd();
MessageBox.Show(st);
こんな感じでしょうか?
前略
・さっそくのご教示ありがとうございます。 コンパイルして実行して期待どうりの結果を確認できました。
正規表現に関しては、はじめて聞く言葉でした。 昨日一日 && と || で四苦八苦していました。
今後ともよろしくお願いします。
以上
No.1
- 回答日時:
空行は無理かも知れませんが……正規表現で抜けませんかね?
http://dobon.net/vb/dotnet/string/regexmatch.html
System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex("0x[0-9a-fA-F][0-9a-fA-F],( |\r\n)", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Match m = r.Match(textBox1.Text);
textBox2.Text = string.Empty;
while (m.Success)
{
textBox2.Text += m.Value;
m = m.NextMatch();
}
こんな感じでしょうか?
正規表現文字列を工夫すれば…"{"から"}"までの間を丸ごと抜き出すことも可能かと思われますが。
"0x[0-9a-fA-F][0-9a-fA-F],"または"\r\n"の1回以上の繰り返しがあって、"{"から始まって"}"で終わるまでの間…みたいな感じでしょうかね。
前略
・さっそく ご教示ありがとうございます。 コンパイル・実行をおこない空行なくデータが抽出できることを確認しました。
今後ともよろしくお願いします。
以上
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- Excel(エクセル) Excelの関数でこんな処理ができますか 1 2023/02/08 13:46
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) エクセルで#以降の文字を取得したい 1 2022/03/28 13:14
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLで特定の項目の重複のみを排...
-
リストビューの項目の内容を変...
-
COBOLについて
-
チェックボックス 複数選択 M...
-
php mysql で WHERE句内に変数...
-
Sheet3から2つの条件でオートフ...
-
fgetcsvでCSVを取得した際のnul...
-
カラム落ち
-
クリスタルレポートに値を渡す
-
MySQLでvarchar型のデータの最...
-
バッチでcsvファイルの指定のカ...
-
[WHS]定数宣言の際にリテラル文...
-
差し込み後、元データを変更し...
-
SELECT 文 GROUP での1件目を...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
外部参照してるキーを主キーに...
-
重複していないレコードの抽出...
-
1、Rstudioで回帰直線を求める...
-
カーソル0件の時にエラーを発生...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLで特定の項目の重複のみを排...
-
バッチでcsvファイルの指定のカ...
-
COBOLについて
-
リストビューの項目の内容を変...
-
DataViewで複数条件の...
-
php mysql で WHERE句内に変数...
-
Zend_DBを使ったselectで文字が...
-
fgetcsvでCSVを取得した際のnul...
-
ListViewのカラムの色の変更
-
google formsを使ったタスク依...
-
COBOL プログラミング
-
DataGridView 右詰め
-
Pythonについて
-
初心者)DataGridViewの入力桁...
-
前回ご教授いただいたコードに...
-
FormulaR1C1でSUMIF変数指定
-
C# リストビューの値を取得
-
VB6リストボックスでの文字...
-
このvbaで指定したフォルダから...
-
Chromeのデベロッパーツール プ...
おすすめ情報