regex 正则表达式匹配字符串中的所有相对路径

u59ebvdq  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(144)

如何写一个正则表达式来过滤所有具有相对路径格式的字符串,即以ser_ver/开始,以.dat结束,中间可能有_,-,/,如下所示,

file1 ser_ver\sha-re\subfolder_1.dat
file2 ser_ver\sha-re\folder1\subfolder_1\subfolder_2.dat
file3 server\sha-re\complex\subfolder_1.dat
file4 server\sha-re\5555AB12\subfolder_1\subfolder_2\subfolder_3.dat

预期:

ser_ver\sha-re\subfolder_1.dat
ser_ver\sha-re\folder1\subfolder_1\subfolder_2.dat
lo8azlld

lo8azlld1#

像这样的事。。

/\bser_ver\/[\w\/-]+\.dat\b/

解释...

\b

零宽度的单词边界,在“单词”和“非单词”字符之间进行匹配。实际上并不向匹配添加任何内容,只是将其锚定,这样它就不会在单词的中间开始或结束。

[\w\/-]+

匹配从a到z、A到Z、下划线、破折号或正斜杠中的一个或多个字符。

\.

文字.
所以它符合...

\b ser_ver/ [\w\/-]+ .dat \b

字边界后接ser_ver/,然后是从a到z、A到Z、下划线、破折号或正斜杠中的一个或多个字符,然后是.dat,然后是另一个字边界。
所有这些都假设您正在使用注解中所述的正斜杠。
正如其他人在评论中提到的,你的例子实际上使用了反斜杠,所以如果你使用反斜杠的话,这需要更新。
像这样...

/\bser_ver\\[\w\\-]+\.dat\b/

或者两者都允许。。

/\bser_ver[\\\/][\w\\\/-]+\.dat\b/

相关问题