C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

C# 正規表現で置換

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■91078 / inTopicNo.1)  C# 正規表現で置換
  
□投稿者/ kawauso (2回)-(2019/05/26(Sun) 10:39:00)

分類:[C#] 

お世話になります。

C#で正規表現使って文字列置換したいです。
わかりづらくて恐縮ですが。

後ろ文字列4文字が置換対象です。

例えば、
■元文字列
HOGEHOGEFS01F1ST
■置換後文字列
HOGEHOGEFS01N1ST

F1STというのが、F2ST.F3STなど可変です。
これを、N1STや、N2ST等に置換したいんです。


以下でやってみたのですが、ダメでした。。。
string wkTarget = "HOGEHOGEFS01F1ST";
wkTarget = System.Text.RegularExpressions.Regex.Replace(wkTarget, @"F[\d]ST", @"N$\dST");

逼迫しており、どなたか助けてください。

引用返信 編集キー/
■91079 / inTopicNo.2)  Re[1]: C# 正規表現で置換
□投稿者/ WebSurfer (1823回)-(2019/05/26(Sun) 12:22:24)
No91078 (kawauso さん) に返信

以下のようにして置き換えできると思います。

wkTarget = System.Text.RegularExpressions.Regex.Replace(wkTarget, @"F(?<number>\d)ST$", @"N${number}ST");

詳しくは下記の記事を見てください。

正規表現での置換
https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/substitutions-in-regular-expressions

記事をよく読めばもっと簡単かつスマートにできるかもしれません。
引用返信 編集キー/
■91085 / inTopicNo.3)  Re[1]: C# 正規表現で置換
□投稿者/ 魔界の仮面弁士 (2187回)-(2019/05/27(Mon) 10:03:16)
No91078 (kawauso さん) に返信
> 後ろ文字列4文字が置換対象です。
> 以下でやってみたのですが、ダメでした。。。
> string wkTarget = "HOGEHOGEFS01F1ST";
> wkTarget = System.Text.RegularExpressions.Regex.Replace(wkTarget, @"F[\d]ST", @"N$\dST");

wkTarget = System.Text.RegularExpressions.Regex.Replace(wkTarget, @"F(\d)ST$", @"N$1ST");

でどうでしょう。
引用返信 編集キー/
■91086 / inTopicNo.4)  Re[2]: C# 正規表現で置換
□投稿者/ kawauso (3回)-(2019/05/27(Mon) 13:00:02)
ありがとうございます!

No91085 (魔界の仮面弁士 さん) に返信
> ■No91078 (kawauso さん) に返信
>>後ろ文字列4文字が置換対象です。
>>以下でやってみたのですが、ダメでした。。。
>>string wkTarget = "HOGEHOGEFS01F1ST";
>>wkTarget = System.Text.RegularExpressions.Regex.Replace(wkTarget, @"F[\d]ST", @"N$\dST");
>
> wkTarget = System.Text.RegularExpressions.Regex.Replace(wkTarget, @"F(\d)ST$", @"N$1ST");
>
> でどうでしょう。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ