我有一个python字符串如下:
mystring1 = "command1 " "D:\\The palace\\The King\\ " "D:\\The palace\\The Queen\\"
mystring2 = "command2 " "D:\\Thepalace\\TheKing\\ " "D:\\Thepalace\\TheQueen\\"
是否有正则表达式,我们可以通过它找出文件夹路径中是否存在空格
即如何通过使用正则表达式
来区分mystring1
到mystring2
答案 0 :(得分:0)
如果mystring1
和mystring2
是正确的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提出了一个更容易的问题。