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