做一些正则表达式,我无法解释如何摆脱此字符串中的]]标记
正则表达式:
personSamples
字符串:
<title><!\[CDATA\[(.*?)</title>
返回: 加冕街明星让·亚历山大逝世90岁]]
我想要的回报: 加冕街明星让亚历山大去世,享年90岁
答案 0 :(得分:0)
你最后也必须逃避方括号。
string = "<title><![CDATA[Coronation Street star Jean Alexander dies aged 90]]></title>"
result = re.findall(r"\[.*\[(.*?)\]\]", string)
print(result)
答案 1 :(得分:0)
我推断你想要使用带有python的正则表达式的答案。所以,这里有一些执行所需操作的代码:
import re
string = "<title><![CDATA[Coronation Street star Jean Alexander dies aged 90]]></title>"
result = re.findall(r"\[.*\[(.*?)\]\]", string)
print ' '.join(result)
注意:此代码在python 2.8下运行 可以运行代码here。
关于代码的几点。一旦代码导入该对象,就可以使用正则表达式对象的findall方法。您的正则表达式需要稍微调整一下,以便包含它们在正则表达式中不会出现两个终止括号。现在,结果将是一个包含正确数据的列表,然后该列表将通过下一行代码转换为字符串。
我发现个人使用PHP比较容易,所以我还会向您展示一个在PHP 5和7版本上运行的PHP解决方案:
<?php
$subject = "[CDATA[Coronation Street star Jean Alexander dies aged 90]]";
$pattern = "/\[.*\[(.*?)\]\]/";
preg_match($pattern, $subject, $matches);
var_dump($matches[1]);
使用PHP,只要preg_match成功,结果就会立即以$ matches的元素1中的字符串形式提供。
请参阅live code。