一部の文字列を抽出したい。

いつも大変お世話になっております。
下記の文字列から「同年同月19日」のみ抽出したいのですが、エラーが生じます。

変数:同年同月19日(火)午後3時まで

変数 = System.Text.RegularExpressions.Regex.Match(変数,"*日").Value

エラーメッセージ:「 “message”: “代入: Invalid pattern ‘*日’ at offset 1. Quantifier {x,y} following nothing.”,」

お気づきの点ありましたらご教授ください。

こんにちは

以下お試しください

System.Text.RegularExpressions.Regex.Match(変数,".*?日").Value

Hi @kiki1

Can you try the below syntax:

変数 = System.Text.RegularExpressions.Regex.Match(変数, ".*日").Value

Hope it helps!!
Regards

アドバイスありがとうございます。
こちらは「.*?」、何を意味しているのでしょうか??

.は改行を除く任意の文字、*は直前の要素と 0 回以上とのマッチ。?はこの場合最短一致になります。
つまり 「(任意の0文字以上の文字)日」となる文字列とマッチします。
最短一致指定をしているのは、たとえば 同年同月19日(日)午後3時まで と曜日で「日」があった場合、最短一致指定をしていないと 同年同月19日(日 までが抽出されるので、それを防ぐためです。

なお正規表現のアスタリスクは通常のワイルドカードとは異なりますので、ご留意ください

ご丁寧にありがとうございます。
とても参考になりました :relieved:

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.