-1

我有这样的数据我从文件中逐行读取

{0 1,1 1,4 1,6 'text text'}
{0 1,1 1,4 1,5 1,6 'text text text text'}
{0 1,5 1,6 'text texttext text'}
{1 1,6 'text text texttexttext text'}

我想得到''之间的所有文本,所以我得到它这样

'text text'
'text text text text'
'text texttext text'
'text text texttexttext text'

我尝试使用 re.sub 删除 ' 之前的第一个字符

line=re.sub(r'.*\'', '', line)

但它删除了所有字符谢谢

4

2 回答 2

0

试试这个:

import re
lines = ["{0 1,1 1,4 1,6 'text text'}", 
         "{0 1,1 1,4 1,5 1,6 'text text text text'}",
         "{0 1,5 1,6 'text texttext text'}",
         "{1 1,6 'text text texttexttext text'}"]
for line in lines:
    print(re.sub(r"[^']*('[^']*').*", r"\1", line))

和输出:

'text text'
'text text text text'
'text texttext text'
'text text texttexttext text'
于 2020-04-17T17:15:09.260 回答
0

您可以使用findallsearch

value = "{0 1,1 1,4 1,6 'text text'}"    
content = re.search("('.*')", value).group(0)
content # 'text text'
于 2020-04-17T17:15:51.217 回答