string= "im fine.gds how are you"
if '.gds' or '.cdl' in string :
a=string.split("????????")
.gds
上記の文字列には、または.cdl
拡張子が含まれる場合があります。拡張子に基づいて文字列を分割したい。
ここで、パラメーターを分割関数に渡す方法を示し.gds
ます。split(".gds")
.cdl
split(".cdl")
string= "im fine.gds how are you"
if '.gds' or '.cdl' in string :
a=string.split("????????")
.gds
上記の文字列には、または.cdl
拡張子が含まれる場合があります。拡張子に基づいて文字列を分割したい。
ここで、パラメーターを分割関数に渡す方法を示し.gds
ます。split(".gds")
.cdl
split(".cdl")
if
ステートメントを分割する必要があると思います:
if '.gds' in string:
a = string.split('.gds')
elif '.cdl' in string:
a = string.split('.cdl')
else:
a = string # this is a fallback in case none of the patterns is in the string
さらに、あなたのin
発言は正しくありません。だったはずです
if '.gds' in string or '.cdl' in string:
このソリューションでは、パターンの 1 つだけが文字列に含まれることを想定していることに注意してください。両方のパターンが同じ文字列で発生する可能性がある場合は、Vikas の回答を参照してください。
正規表現モジュールを使用して、またはre
で分割しますpattern1
pattern2
import re
re.split('\.gds|\.cdl', your_string)
例:
>>> re.split('\.gds|\.cdl', "im fine.gds how are you")
['im fine', ' how are you']
>>> re.split('\.gds|\.cdl', "im fine.cdl how are you")
['im fine', ' how are you']
>>> re.split('\.gds|\.cdl', "im fine.cdl how are.gds you")
['im fine', ' how are', ' you']
次のような関数を定義してみてください。
def split_on_extensions(string, *extensions):
for ext in extensions:
if ext in string:
return string.split(ext)
return string
もちろん、拡張機能を指定する順序は重要です。最初の拡張機能で分割するからです...
タグは最初の後方参照にキャプチャされます。の疑問符regex
は星を怠惰にし、貪欲な星のように最後のタグの前ではなく、最初の終了タグの前で停止するようにします。
この正規表現は、のように、内部にネストされたタグと適切に一致しません<TAG>one<TAG>two</TAG>one</TAG>
。
もう 1 つのオプションは、BIF str.partitionを使用することです。これがどのように機能するかです:
sring= "im fine.gds how are you"
three_parts_of_sring = sring.partition('.gds')
>>> three_parts_of_sring
('im fine', '.gds', ' how are you')
それを小さな機能とセットに入れます。
2人のうちの1人がそこにいるという保証はありますか?
a = next( string.split(v) for v in ('.gds','.cdl') if v in string )
そこにあると確信できない場合は、StopIteration
で発生した をキャッチできnext
ます。
try:
a = next( string.split(v) for v in ('.gds','.cdl') if v in string )
except StopIteration:
a = string #????
セパレーターを繰り返すことができます:
string= "im fine.gds how are you"
separators = ['.gds', '.cdl']
for separator in separators:
if separator in string:
a = string.split(separator)
break
else:
a = []