長い文章に対して正規表現を使いたい時に、^(行頭)、$(行末)を各行にマッチさせたい時には、オプションのRegexOptions.Multilineを利用すると良いです。
C#
string strResult = "";
//元の文章
string ORIGINAL_TEXT = "あいうえお\n2あかきくけこ\n45あさしすせそ\nあいうえお";
//オプションなし
Regex reg1 = new Regex(@"^[\d]+あ");
var ms1 = reg1.Matches(ORIGINAL_TEXT);
strResult = "オプションなしの結果\r\n";
foreach (Match match in ms1)
{
strResult += match.Value;
strResult += "\r\n";
}
strResult += "\r\nマルチラインの結果\r\n";
//マルチラインのオプション
Regex reg2 = new Regex(@"^[\d]+あ", RegexOptions.Multiline);
var ms2 = reg2.Matches(ORIGINAL_TEXT);
foreach (Match match in ms2)
{
strResult += match.Value;
strResult += "\r\n";
}
this.textBox1.Text = strResult;
//結果
//オプションなしの結果
//
//マルチラインの結果
//2あ
//45あ
VB.NET
Dim strResult As String = ""
'元の文章
Dim ORIGINAL_TEXT As String = "あいうえお" + vbCrLf + "2あかきくけこ" + vbCrLf + "45あさしすせそ" + vbCrLf + "あいうえお"
'オプションなし
Dim reg1 As Regex = New Regex("^[\d]+あ")
Dim ms1 As MatchCollection = reg1.Matches(ORIGINAL_TEXT)
strResult = "オプションなしの結果" + vbCrLf
Dim match As Match
For Each match In ms1
strResult = strResult + match.Value
strResult = strResult + vbCrLf
Next
strResult = strResult + vbCrLf + "マルチラインの結果" + vbCrLf
'マルチラインのオプション
Dim reg2 As Regex = New Regex("^[\d]+あ", RegexOptions.Multiline)
Dim ms2 As MatchCollection = reg2.Matches(ORIGINAL_TEXT)
For Each match In ms2
strResult = strResult + match.Value
strResult = strResult + vbCrLf
Next
Me.TextBox1.Text = strResult
'結果
'オプションなしの結果
'
'マルチラインの結果
'2あ
'45あ
| 良い | やや良い | 普通 | やや悪い | 悪い |
|---|
| 投稿日時 | 評価 | コメント |
|---|