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

確かに正規表現は必要ないかもしれません。単純な文字列メソッド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 に答える
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を指摘してくれたPengyuCHENに乾杯して、もっと簡単な質問をしました。

于 2012-07-31T14:31:11.200 に答える
0

mystring1とが適切な Python 文字列であれば、shlex Pythonパッケージmystring2を見てみたいと思います。このような文字列を解析するために特別に作成されています。次に、コマンド、およびコマンドへの引数、引用符/スペースが解析されたもの、およびすべてを取得するために使用できます。shlex.get_token()

于 2012-07-31T14:25:27.573 に答える