如何在Python中使用[]拆分字符串

Joa*_*nge 2 python string

所以从这个字符串:

"名[ID]"

我需要这个:

"ID"

我使用str.split('[]'),但它不起作用.它只需要一个分隔符吗?

Tri*_*ych 13

使用正则表达式:

import re 
s = "name[id]"
re.find(r"\[(.*?)\]", s).group(1) # = 'id'
Run Code Online (Sandbox Code Playgroud)

str.split()采用一个字符串来分割输入.例如:

"i,split,on commas".split(',') # = ['i', 'split', 'on commas']
Run Code Online (Sandbox Code Playgroud)

re模块还允许您通过正则表达式进行拆分,这可能非常有用,我认为这就是您的意图.

import re
s = "name[id]"

# split by either a '[' or a ']'
re.split('\[|\]', s) # = ['name', 'id', '']
Run Code Online (Sandbox Code Playgroud)

  • 这不应该使用懒惰点.尝试r"\\ [([^] [] +)\\]"而不是减少回溯.(是的,它看起来很奇怪,但它确实有效.)在这么短的琴弦上可能没那么重要,但懒惰的点是一个坏习惯. (2认同)

Mar*_*rot 7

"name[id]".split('[')[1][:-1] == "id"
Run Code Online (Sandbox Code Playgroud)

要么

"name[id]".split('[')[1].split(']')[0] == "id"
Run Code Online (Sandbox Code Playgroud)

要么

re.search(r'\[(.*?)\]',"name[id]").group(1) == "id"
Run Code Online (Sandbox Code Playgroud)

要么

re.split(r'[\[\]]',"name[id]")[1] == "id"
Run Code Online (Sandbox Code Playgroud)