正在尝试创建一个REGEX,以将2个字符与4个其他字符除以/字符进行切换



我是Regex的新手,正在尝试制作一个正则表达式来重命名文件。

例如,我有以下格式的字符串:

  • SC_05/2020-这里有一个很长的标题
  • SC_02/2021-简短标题
  • SC_03/2021

我想让它像这样输出:

  • SC_2020/05-这里有一个很长的标题
  • SC_2021/02-简短标题
  • SC_2021/03

到目前为止,我有这个来检测前两位

(d)*(d)

我也可以使用REGEX来翻转这两个吗??

更换

^SC_(d+)/(d+)

带有

SC_$2/$1

请参阅正则表达式证明。

解释

--------------------------------------------------------------------------------
^                        the beginning of the string
--------------------------------------------------------------------------------
SC_                      'SC_'
--------------------------------------------------------------------------------
(                        group and capture to 1:
--------------------------------------------------------------------------------
d+                      digits (0-9) (1 or more times (matching
the most amount possible))
--------------------------------------------------------------------------------
)                        end of 1
--------------------------------------------------------------------------------
/                       '/'
--------------------------------------------------------------------------------
(                        group and capture to 2:
--------------------------------------------------------------------------------
d+                      digits (0-9) (1 or more times (matching
the most amount possible))
--------------------------------------------------------------------------------
)                        end of 2

Regex进行匹配。当要以某种方式使用匹配的值时,可以执行反转顺序。因此:您的原始文件名可以匹配:

(SC_)(dd)(/)(dddd)(.*)

(SC_((2位((斜线((4位((任意(括号进行捕获,因此例如在记事本++中,您可以通过使用替换窗口并将上面的内容替换为:来反转顺序

$1$4$3$2$5

您可能会在其他上下文中使用regex,因此引用捕获的值会有所不同(例如\1\4\3\2\5(。使用((捕获值是正则表达式本身的一部分,因此它不会更改。

相关内容

最新更新