という名前のファイルがあります
SMITH FAMILY TRUST S09 T90N R42W 30011498002 EXHIBIT USACE 06-24-2013.dwg
2013 年 6 月 24 日以外の日付をすべて削除する正規表現を探しています。
以下は、日付自体に一致する私のコードですが、それを元に戻す方法がわかりません。
[0-9]{2}-[0-9]{2}-[0-9]{4}
一致したテキストのみを保持すると、結果は無視されます
var match = Regex.Match(yourString, "[0-9]{2}-[0-9]{2}-[0-9]{4}");
string result = "";
if(match.Success)
result = match.Value;
結果は、この 06-24-2013 になります。つまり、残りは無視されます。
これを行う 1 つの方法は、先読みアンカーと後読みアンカーを使用することです: この式
"SMITH FAMILY TRUST S09 T90N R42W 30011498002 EXHIBIT USACE 06-24-2013.dwg"
.replaceAll("(?<=[0-9]{2}-[0-9]{2}-[0-9]{4}).*$|.*(?=[0-9]{2}-[0-9]{2}-[0-9]{4})", "")
返品06-24-2013
(デモ)
日付の式を取得し、両端からの式までのすべてに一致する構成に追加しましたが、式は含まれません。この構成が の呼び出しで使用されるとreplaceAll
、両側が置き換えられます。代わりに空の文字列を使用したため、正規表現の両側のすべての文字が削除されます。
すでに回答されていますが、入力を開始して以来:
string myString = "SMITH FAMILY TRUST S09 T90N R42W 30011498002 EXHIBIT USACE 06-24-2013.dwg";
string myNewDateString = Regex.Replace(myString, @".*([0-9]{2}-[0-9]{2}-[0-9]{4}).*", "$1");
Console.WriteLine(myNewString); // 06-24-2013
という変数にすでに日付があると仮定しますdateStr
。
string newName = dateStr + ".dwg";
または、たとえば結果を取得するために、日付のみを削除しようとしていましたSMITH FAMILY TRUST S09 T90N R42W 30011498002 EXHIBIT USACE.dwg
か?
抽出したいのに、なぜ元に戻したいのですか:-)
var content = "SMITH FAMILY TRUST S09 T90N R42W 30011498002 EXHIBIT USACE 06-24-2013.dwg";
var result = content.match(/[0-9]{2}-[0-9]{2}-[0-9]{4}/g);
if (result)
console.log(result[0]);
これにより、06-24-2013 が返されます。