return python 中两个单引号 ' ' 之间的所有字符使用正则表达式
return all tthe charecters between two single qutes ' ' in python using regex
我有这样的数据 我是逐行从文件中读取的
{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)
但它删除了所有字符
谢谢
试试这个:
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"", line))
和输出:
'text text'
'text text text text'
'text texttext text'
'text text texttexttext text'
您可以使用 findall
或 search
value = "{0 1,1 1,4 1,6 'text text'}"
content = re.search("('.*')", value).group(0)
content # 'text text'
我有这样的数据 我是逐行从文件中读取的
{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)
但它删除了所有字符 谢谢
试试这个:
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"", line))
和输出:
'text text'
'text text text text'
'text texttext text'
'text text texttexttext text'
您可以使用 findall
或 search
value = "{0 1,1 1,4 1,6 'text text'}"
content = re.search("('.*')", value).group(0)
content # 'text text'