現在、C#を用いて不要な文字列を削除するプログラムを作成しています。
ネットなどで検索していろいろと実装してみましたが難しいです。どなたかご意見を頂けたら嬉しいです。
その文字列の文は以下のようなものです↓↓
pass1_best:こん pass1_best:こんに pass1_best: pass1_best:こんにちは
sentence1:こんにちは
pass1_best:おは pass1_best:おはよ pass1_best:おはよう
sentence1:おはよう
pass1_best:こん pass1_best:こんばんは
sentence1:こんばんは
このような文字列が並んでいます。私が抜き取りたいのは「sentence1:」以降の一文です。
ですので「pass1_best:」以下の文を削除したいと考えています。
また具体的な特徴として、
①一番最初は上の通り「pass1_best:」から始まっています。
②「pass1_best:」の後に1行の空白があり「sentence1:」が続いていきます。
③「sentence1:」のすぐ下の行に続いて「pass1_best:」が続いていきます。
これらのことを考えつつ「sentence1:」以下の分だけを残す(pass1_best:の文を削除、またはsentence1:以下の文を抽出)ことをして、
こんにちは
おはよう
こんばんは
のようにしていきたいと考えています。
長文になりましたが、ご意見をよろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
StreamReaderクラスで1行ずつ読み込んで、
http://dobon.net/vb/dotnet/string/regexmatch.html
正規表現で抽出して、表示(ファイルに書き出し?)する。
かと。
No.2
- 回答日時:
別解です。
1. foreachで1行ずつ読み取り
System.IO.File.ReadLines メソッド
https://msdn.microsoft.com/ja-jp/library/dd38335 …
2. 読み取った行を、ifで特定の文字列(sentence1:)で始まるか判別し
String.StartsWith メソッド
https://msdn.microsoft.com/ja-jp/library/baketfx …
3. 指定位置(11文字、sentence1:の次)以降の文字列を取り出す
String.Substring メソッド
https://msdn.microsoft.com/ja-jp/library/hxthx5h …
4. 取り出した文字列を表示(ファイル書き出し?)する
No.3
- 回答日時:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var value = @"pass1_best:こん pass1_best:こんに pass1_best: pass1_best:こんにちは
sentence1:こんにちは
pass1_best:おは pass1_best:おはよ pass1_best:おはよう
sentence1:おはよう
pass1_best:こん pass1_best:こんばんは
sentence1:こんばんは";
MatchCollection matches = Regex.Matches(value, @"(?<=sentence1:).+");
foreach(Match match in matches)
{
Console.WriteLine(match.Value);
}
Console.ReadLine();
}
}
}
【実行結果】
こんにちは
おはよう
こんばんは
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 to date 2 2023/05/23 23:22
- 英語 提示文の文頭の"for"の意味と役割について 4 2023/03/04 18:28
- 楽器・演奏 高2女です。今度、2月にある予餞会でMCを担当することになりました。 (曲はWindsScoreさん 1 2022/12/26 21:24
- 英語 Best Regardsは2語で「よろしく」という意味がありますが、BestとRegardsはこの場 5 2022/09/15 12:38
- 英語 A major clinical challenge is how best to accelera 2 2023/01/04 21:40
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- 英語 Best stay close. この文の文型は何ですか?? 1 2023/03/26 18:02
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- 英語 英文添削依頼_お礼のメール 1 2022/12/13 11:36
- 英語 部分否定、全否定 1 2023/03/03 12:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
String型の日付(2005/11/25)の...
-
C# マルチスレッドにおける例外...
-
nullで、return出来るのはどん...
-
【JAVA】与えられた金額を貨幣...
-
スタックオーバーフローとは?
-
子プロセスで発生した例外を親...
-
文字列からダブルクオートの削除
-
例外ってIf文の中に入れますか...
-
VBA 400エラー 1004エラー
-
C++の例外処理について
-
Javaで文字列をゼロ埋め(ゼロパ...
-
文字列が数字のみで構成されて...
-
オープンアプリにおける、テキ...
-
0除算の例外処理ができない!!...
-
時間の取得
-
エクセルVBAで、条件に一致する...
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
c++,ある関数のクラスから別の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
【JAVA】与えられた金額を貨幣...
-
連続する「\\」をひとつの「\\...
-
文字列からダブルクオートの削除
-
VB.Net Object型 空かどうか
-
0除算の例外処理ができない!!...
-
VB.NETで16進数が正しいかどう...
-
数字か文字列かを判定する関数
-
例外ってIf文の中に入れますか...
-
C# マルチスレッドにおける例外...
-
スタックオーバーフローとは?
-
String型の日付(2005/11/25)の...
-
Timestamp型への変換について(J...
-
C# UriFormatExceptionの回避
-
VBA Evaluate関数 型が一致しま...
-
ADOによるレコードの追加/更新
-
時間の取得
-
WebClient()以外でネットにアク...
-
C#の捕捉されない例外処理の対...
-
タトゥーや墨を入れる人の共通点
おすすめ情報