我正在尝试使用正则表达式来获取此内容的文本:
`content` = 'Уважаемый {first_name},<br><br>\r\n\r\n
Hello, Tere, <b>this is some <span style="italic">lorem ipsum</span></b><br><br>
\r\n\r\nÖöbik lõõritas äiksega Ülemistel.',`
`something else` = 'Lorem {last_name},<br><br>\r\n\r\n
Said Boo, <b>I'm a scary ghost</b><br><br>
\r\n\r\nJäääär tööööl lõõritas üllalt.',`
因此,我正在尝试在'content' = '
和','
之间获取所有非HTML标记文字。
我一直在四处寻找,但似乎我的正则表达式建设技能非常缺乏。
到目前为止我所拥有的是:
(?:`content` = ')(</?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)/?>)(?:',`)
但由于显而易见的原因,它无法正常工作。
所以,如果有人有一些想法,如何使这个正则表达式工作,你将成为我个人的英雄。
谢谢!
编辑:
该正则表达式的预期输出将是:
`content` = 'Уважаемый {first_name},
Hello, Tere, this is some lorem ipsum
Ööbik lõõritas äiksega Ülemistel.',`
`something else` = 'Lorem {last_name},<br><br>\r\n\r\n
Said Boo, <b>I'm a scary ghost</b><br><br>
\r\n\r\nJäääär tööööl lõõritas üllalt.',`
这不是语言特定的请求,只是纯粹的'正则表达式,只有一次通过..
答案 0 :(得分:1)
很容易分两步完成。首先,删除标签:
# python
s = ''.join(re.findall(u"(?u)[^<>]+(?=(?:<|$))", data))
给出了
`content` = 'Уважаемый {first_name},
Hello, Tere, this is some lorem ipsum
Ööbik lõõritas äiksega Ülemistel.',`
然后删除引号:
s = re.sub("(^[^']+')|('.*$)", '', s)
根据您的编辑,这会提供所需的输出:
re.sub(r'<.+?>(?=[^`]+`\s+`)','', data)