python中是否有任何正则表达式来查找文件夹路径中的空格

时间:2012-07-31 14:09:11

标签: python regex

我有一个python字符串如下:

mystring1 = "command1 "  "D:\\The palace\\The King\\ " "D:\\The palace\\The Queen\\"

mystring2 = "command2 "  "D:\\Thepalace\\TheKing\\ " "D:\\Thepalace\\TheQueen\\"

是否有正则表达式,我们可以通过它找出文件夹路径中是否存在空格

即如何通过使用正则表达式

来区分mystring1mystring2

3 个答案:

答案 0 :(得分:0)

如果mystring1mystring2是正确的Python字符串,我想你想看一下shlex Python包。它专门用于解析此类字符串。然后你可以使用shlex.get_token()来检索命令,命令的参数,引号/间隔解析和所有。

答案 1 :(得分:0)

你可能确实不需要正则表达式。一个简单的字符串方法string.find(string)就可以了。

s = "some string"
space = " "
s.find(space) # gives -1 when space is not in s, otherwise the offset of its 1st appearance

<强>编辑:

根据问题的版本编辑此答案。

由于您使用的是Windows,因此我会向您提供":\\. .*\\"以获取具有绝对路径的命令。至于相对路径,我担心没有一个很好的解决方案可以检测。

答案 2 :(得分:0)

假设你的意思是

mystring1="command1 D:\\The place\\The King\\ D:\\The place\\The Queen\\"

您可以在D:\\出现时拆分字符串,然后从子字符串中删除空格将为您提供无空间路径,例如

subs = mystring1.split('D:\\')
mystring2 = subs[0]
for s in subs[1:]: 
    mystring2 += ' D:\\' + s.replace(' ', '')

例如我应用了这个并获得了

>> mystring2
    'command1  D:\\Theplace\\TheKing\\  D:\\Theplace\\TheQueen\\'

如果您只是需要区分它们,请使用

def has_spaces(str1):
    subs = str1.split('D:\\')
    for s in subs[1:]: 
        if s.strip().count(' ') > 0:
        return True

>> has_spaces(mystring1)
    True
>> has_spaces(mystring2)
    False

检测是否有任何路径包含空格。向陈鹏宇的欢呼声指出OP提出了一个更容易的问题。