2

我有一个python字符串如下:

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

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

是否有任何正则表达式可以找出文件夹路径中是否存在空格

即我如何mystring1通过mystring2使用正则表达式来区分

4

3 回答 3

0

如果它mystring1mystring2正确的 Python 字符串,我想你想看看shlex Python 包。它是专门为解析此类字符串而创建的。然后你可以使用shlex.get_token()来检索命令,以及命令的参数,引号/空格解析等等。

于 2012-07-31T14:25:27.573 回答
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

检测是否有任何路径包含空格。感谢 Pengyu Chen 指出 OP 提出了一个更简单的问题。

于 2012-07-31T14:31:11.200 回答
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,因此我将向您介绍":\\. .*\\"具有绝对路径的命令。至于相对路径,恐怕不会有很好的解决方案来检测。

于 2012-07-31T14:27:05.223 回答