如果您的意思是要匹配类似DATE OF SURGERY: 08/06/2013
or的字符串DATE OF SURGERY: 08-06-2013
,则可以使用以下模式:
(?<=DATE OF SURGERY: *)\d{1,2}[/-]\d{1,2}[/-]\d{1,4}
但这也会捕获混合斜杠或连字符DATE OF SURGERY: 08/06-2013
。如果您只想获得两个斜杠或两个连字符,则需要使用反向引用:
(?<=DATE OF SURGERY: *)\d{1,2}([/-])\d{1,2}\1\d{1,4}
如果您的意思是您想使用正则表达式替换DATE OF SURGERY: 08/06/2013
with 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");