从给定的示例文本中,我希望将文本与[[]]和{{}}中包含的文本分开
示例文本:
1988年12月11日,年仅15岁零232天的Tendulkar在他的首秀[[一级板球|一级]]中为[[孟买板球队|孟买]]对阵[[古吉拉特邦板球队|古吉拉特邦]]取得了100分,这使他成为一个世纪以来最年轻的一级首秀得分印度人。随后,他在自己的第一个Deodhar和Duleep奖杯上打入了一个世纪的进球。{引用web|url=http://www.espnstar.com/cricket/international-cricket/news/detail/item136972/Sachin-Tendulkar-factfile/|title=Sachin Tendulkar factfile | publisher=www.espnstar.com|accessdate=3 August 2009}}他在看到孟买队长[[Dilip Vengsarkar]]在篮网谈判[[Kapil Dev]]后被选中,并以孟买最高的得分者的身份结束了本赛季=http://blogs.cricinfo.com/link_to_database/ARCHIVE/1980S/1988-89/IND_LOCAL/RANJI/STATS/IND_LOCAL_RJI_AVS_BAT_MOST_RUNS.html|title=1988–89兰吉赛季–最多跑次数| publisher=Cricinfo | accessdate=2009年8月3日}}他还在[[伊拉尼奖杯]]决赛中创下了百年不败纪录=http://cricketarchive.com/Archive/Scorecards/52/52008.html|title=1989/90年印度其他地区诉德里|publisher=Cricketarchive|accessdate=2009年8月3日}},并在仅仅一个一流赛季后被选中参加明年的巴基斯坦巡回赛。
我试过这个:
$patterns = ("/^{{*/", "/*}}$/" );$replacements = "";
preg_replace($patterns, $replacements, $parts);
print_r($parts);
这个:
$parts = preg_replace("/'[(?:''''|''']|[^']])*']/", "", $ans_str);
还有这个:
$pattern = ("/'[.*?']/", "/'{.*?'}/");
$ans = preg_replace($pattern, "", $parts);
它不起作用。请帮忙,谢谢。
这应该可以完成
$str = "On 11 December 1988, ...";
$str = preg_replace('/'{'{.+'}'}/Us', '', $str);
var_dump($str);
U修饰语表示不自由模式,这意味着尽快停止比赛(以避免所有引用都被视为一场巨大的比赛(。
EDIT:添加了s修饰符,请参见注释
// remove `{{cite}}` tags
$str = preg_replace('/'s*'{'{[^}{]*+'}'}'s*/', ' ', $str);
// remove links--including rollover text--leaving link text
$str = preg_replace('/'['[(?:[^][|]*+'|)?+([^][]*+)']']/', '$1', $str);
请参阅ideone.com上的演示
以下两行完成了任务:
$str = preg_replace(/'s*'{{.*?'}}'s*/g, " ", $str);//to remove the curly braces and the text between them.
$str = preg_replace(/['[(.)']]/g, "", $str);//to remove the square braces.
抱歉出了问题。