0

たとえば、私はファイル名を持っています[foo] FooBar[!].bar

FooBar正規表現を使用して一致させるが、一致させないようにするにはどうすればよいですか[foo][!]または.bar

ところで、私はPython正規表現を使用しています。

基本的に、ドットの後にないもの、または角かっこで囲まれていないものはすべて一致させたいと思います。

4

3 に答える 3

2
fileName = '[abc][def]Real Name[!].exe'
name = re.search('(\[[^]]*\])*([\w\s]+)', fileName).group(2)
print name

これは「実名」を出力するはずです

于 2013-03-10T01:28:40.270 に答える
0
(?:^|])(?!\.)([\w\s]+)(?:\[|$)'

これは、文字列で囲まれた単語とスペースの組み合わせ][または文字列の開始と終了に一致する必要があり、前にドットが付いていない必要があります。

于 2013-03-10T01:30:26.437 に答える
0

あなたはそれをすべて置き換えることができます:

>>> re.sub(r'\[.*?\]|\..*', '', '[foo] FooBar[!].bar')
    ' FooBar'
于 2013-03-10T01:33:24.717 に答える