たとえば、私はファイル名を持っています[foo] FooBar[!].bar
FooBar
正規表現を使用して一致させるが、一致させないようにするにはどうすればよいですか[foo]
、[!]
または.bar
ところで、私はPython正規表現を使用しています。
基本的に、ドットの後にないもの、または角かっこで囲まれていないものはすべて一致させたいと思います。
fileName = '[abc][def]Real Name[!].exe'
name = re.search('(\[[^]]*\])*([\w\s]+)', fileName).group(2)
print name
これは「実名」を出力するはずです
(?:^|])(?!\.)([\w\s]+)(?:\[|$)'
これは、文字列で囲まれた単語とスペースの組み合わせ]
、[
または文字列の開始と終了に一致する必要があり、前にドットが付いていない必要があります。
あなたはそれをすべて置き換えることができます:
>>> re.sub(r'\[.*?\]|\..*', '', '[foo] FooBar[!].bar')
' FooBar'