如何替换包含冰岛字符的字符串?

时间:2018-07-05 08:54:10

标签: php regex

我有一个带有英语和冰岛字符的动态字符串:

$string = "The Post (Post Title In Icelandic Characters) appeared first on (Website Name)";

标题可以包含任何特殊字符,例如(-_,。&..Etc Etc)。

网站名称有时包含冰岛字符和特殊字符,例如(。-)。

标题和网站名称均不区分大小写,因为某些单词包含大写字母。

我尝试过:

$appeared= ['~The post [^\p{Xwd}. -] appeared first on [^"]*~u'];
preg_replace($appeared, '', $string)

但这没用。

一个例子:

$string = "The post Gufuá í Borgafirði – flott veiði í dag, 26. júní appeared first on a.is.";

请注意,标题包含特殊字符,可以包含任何特殊字符,而且字符串末尾的点也可以存在或不存在。

我想用空字符串''替换该完整字符串。

1 个答案:

答案 0 :(得分:2)

您似乎需要

preg_replace('~The post .*? appeared first on .*~', '', $string)

第一个.*?匹配除换行符以外的任何0+个字符,尽可能少(惰性),然后最后一个.*匹配除换行符以外的0个以上的字符,尽可能多尽可能(贪婪)。

请参见PHP demo

请注意,您只需要匹配任何个字符,就不必担心这里的冰岛字符。