我有一个包含
的文件[[ abstraction, verb.cognition:abstract,+ ]]
我想删除方括号,并希望在此括号中保留单词abstraction
。所以输出应该是 -
abstraction
我试过了 -
import re
with open('test.txt','r') as f:
for line in f:
rx = re.compile(r'\[[^][]*]') string
while rx.search(line):
line = rx.sub('',line)
s = line.strip()
print(s)
只显示[]
方括号。是否有办法执行此操作?请帮忙 。
答案 0 :(得分:1)
使用re.search
<强>实施例强>
s = "[[ abstraction, verb.cognition:abstract,+ ]]"
m = re.search("\[\[(.*?)\,.*", s)
if m:
print(m.group(1))
<强>输出:强>
abstraction
答案 1 :(得分:1)
你甚至不用担心括号,如果你的文件只包含那个,你只需要匹配第一个单词。
import re
t = "[[ abstraction, verb.cognition:abstract,+ ]] "
match = re.search(r"\b([^,]+)\b", t)
# prints False when no match is found
print(match is not None and match.group(0))
# abstraction
答案 2 :(得分:1)
你也可以试试这个,
line="""[[ abstraction, verb.cognition:abstract,+ ]] rewq [[ abs, verb.cognition:abstract,+ ]] fdsaf [[ abstraction, verb.cfdsa,+ ]] """
rx = re.compile(r'\[\[[^][]*]]')
line = rx.sub(lambda m: '' if m.group(0).find("abstraction")== -1 else "abstraction", line)
s = line.strip()
print(s)
输出
abstraction rewq fdsaf abstraction