0

ここで調査を書くのに時間をかけた正規表現がありますが、それはまさに私が望んでいたことをしていません。私が引っ張ろうとしている値は次のようなものです:

DATE OF SURGERY:  08/06/2013 

日付を引きたいのですが、スラッシュをダッシュ​​に変えたいです。私はこれを書きました:

(?<=DATE OF SURGERY: *)\d{1,2}/\d{1,2}/\d{1,4}

これにより、2013 年 8 月 6 日を引き戻すことができますが、2013 年 8 月 3 日を引き戻す必要があります。正規表現でダッシュをハードコーディングする方法はありますか? または、スラッシュをダッシュ​​に置き換える方法はありますか? 皆さん、ありがとうございました

4

1 に答える 1

1

DATE OF SURGERY: 08/06/2013またはのような文字列に一致させたい場合はDATE OF SURGERY: 08-06-2013、次のパターンを使用できます。

(?<=DATE OF SURGERY: *)\d{1,2}[/-]\d{1,2}[/-]\d{1,4}

しかし、それは混合スラッシュやハイフンもキャッチしますDATE OF SURGERY: 08/06-2013. 2 つのスラッシュまたは 2 つのハイフンのみを取得する場合は、後方参照を使用する必要があります。

(?<=DATE OF SURGERY: *)\d{1,2}([/-])\d{1,2}\1\d{1,4}

DATE OF SURGERY: 08/06/2013正規表現を使用して を置き換えたいということであれば、次DATE OF SURGERY: 08-06-2013のような置換パターンを使用する必要があります。

match: (?<=DATE OF SURGERY: *)(\d{1,2})([/-])(\d{1,2})\2(\d{1,4})

replace: \1-\3-\4

たとえば、これは C# ですが、実際に使用するコードは特定の言語と正規表現エンジンによって異なります。

Regex.Replace(input, 
    @"(?<=DATE OF SURGERY: *)(\d{1,2})([/-])(\d{1,2})\2(\d{1,4})",
    @"\1-\3-\4");
于 2013-08-13T16:12:57.833 に答える