Regex 如何将文本从字符串的末尾移动到开头
这里有两行文字是我想修改的Regex 如何将文本从字符串的末尾移动到开头,regex,Regex,这里有两行文字是我想修改的 Dorset Rd (5) - 2018-12-14 11-01-05 Crampton Chas - Sandarra Blvd - 2018-12-27 12-31-56 我试着把日期和时间从每行的末尾移到开始,来制作这个 2018-12-14 11-01-05 - Dorset Rd (5) 2018-12-27 12-31-56 - Crampton Chas - Sandarra Blvd 通过阅读本论坛(感谢大家),我想出了以下正则表达式 (^.*)\
Dorset Rd (5) - 2018-12-14 11-01-05
Crampton Chas - Sandarra Blvd - 2018-12-27 12-31-56
我试着把日期和时间从每行的末尾移到开始,来制作这个
2018-12-14 11-01-05 - Dorset Rd (5)
2018-12-27 12-31-56 - Crampton Chas - Sandarra Blvd
通过阅读本论坛(感谢大家),我想出了以下正则表达式
(^.*)\s-\s(.*$)
用这个来代替
$2 - $1
这很好,但我有两个问题:
*
是贪婪的。它首先匹配所有内容,然后进行回溯,直到匹配完字符串的其余部分。看
如果选择最后19个字符,并以某种方式将它们移到开头,这会更好吗
如果你的日期格式总是有19个字符,那当然
^(.*) - (.{19})$
替换为相同的替换
不确定这是否是“更好”,但不知道你所说的“更好”是什么意思。我现在知道了“贪婪”的含义。Thx我注意到我使用
(^.*)
的地方您使用了^(.*)
。有区别吗?@RedOchre没有区别^
匹配零宽度字符串,因此它是否在组中并不重要。