正则表达式替换为文本板

正则表达式替换为文本板

我需要更新文本板中一个大文件中的日期格式。

日期格式目前是 mm-dd-yyyy ,我需要将其改为 mm/dd/yyyy

每行带有日期,均以 D 开头。

像这样:D02-12-2009

我的正则表达式搜索部分运行良好^D(。?)-(。?)-(.*?)?,但当我尝试使用 $1 $2 $3 替换我的值 D$1/$2/$3 时,替换失败。它用文字 $1、$2 和 $3 替换。我已将 textpad 设置为使用 POSIX 正则表达式。

关于如何捕获这些值并将其放入我的替换部分,有什么想法吗?

答案1

请使用\1 \2 \3而不是$1 $2 $3

找什么:D([0-9]+)-([0-9]+)-([0-9]+)

用。。。来代替:D\1/\2/\3

D02-12-2009
D03-12-2009
D04-12-2009

D02/12/2009
D03/12/2009
D04/12/2009

关于分组

将标记表达式分组以用于替换表达式。RE 最多可以有 9 个标记表达式,根据它们在 RE 中的顺序进行编号。相应的替换表达式是 \x,x 的范围为 1-9。示例:如果 ([az]+) ([az]+) 匹配“way error”,则 \2 \1 会将其替换为“wrong way”。

附言:我不知道为什么要将其移到这里,这是我第一次来这里。:-)

答案2

“每行带有日期的行都以 D 开头。”为了更加安全,我会添加“^“到 find 表达式:**^**D([0-9]+)-([0-9]+)-([0-9]+)
字符串不太可能出现在其他地方,但是......

相关内容