0

という名前のファイルがあります

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}
4

5 に答える 5

9

一致したテキストのみを保持すると、結果は無視されます

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 になります。つまり、残りは無視されます。

于 2013-07-18T14:49:15.347 に答える
3

これを行う 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、両側が置き換えられます。代わりに空の文字列を使用したため、正規表現の両側のすべての文字が削除されます。

于 2013-07-18T14:49:23.997 に答える
1

すでに回答されていますが、入力を開始して以来:

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
于 2013-07-18T14:54:03.333 に答える
0

という変数にすでに日付があると仮定しますdateStr

string newName = dateStr + ".dwg";

または、たとえば結果を取得するために、日付のみを削除しようとしていましたSMITH FAMILY TRUST S09 T90N R42W 30011498002 EXHIBIT USACE.dwgか?

于 2013-07-18T14:47:05.017 に答える
0

抽出したいのに、なぜ元に戻したいのですか:-)

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 が返されます。

于 2013-07-18T14:49:25.530 に答える