我有一个以空格分隔的文件名列表,其中文件名中的空格以'\'为前缀
例如"first\file second\file"
如何让我的正则表达式匹配每个文件名?
Ste*_*Mai 14
(\\ |[^ ])+
Run Code Online (Sandbox Code Playgroud)
除了空格之外的所有东西,除非它们被逃脱.应该工作,抱歉最初误解你的问题.
(\S|(?<=\\) )+
Run Code Online (Sandbox Code Playgroud)
说明:
您正在寻找非空白字符(\S)或前面带有反斜杠的空格,多次.
所有匹配项将保存到mach组1,全局应用模式以获取字符串中的所有匹配项.
编辑
想一想,你甚至不需要捕捉到一个小组.仅仅匹配就足够了,所以这可能会更有效(?:切换到非捕获组):
(?:\S|(?<=\\) )+
Run Code Online (Sandbox Code Playgroud)