[英]Extract certain text from a string with regex
例如,我尝试从字符串中提取编码字符串,
$string = 'Louise Bourgeois and Tracey Emin: Do Not Abandon Me [date]Until 31 August 2011[ /date ]';
$description = preg_replace('/\[(?: |\s)*([date]+)(?: |\s)*\](.*?)\[(?: |\s)*([\/date]+)(?: |\s)*\]/is', '',$string);
$date = preg_replace('/\[(?: |\s)*([date]+)(?: |\s)*\](.*?)\[(?: |\s)*([\/date]+)(?: |\s)*\]/is', '$3',$string);
echo $date;
结果:
Louise Bourgeois and Tracey Emin: Do Not Abandon Me /date
预期结果:
Until 31 August 2011
我正确使用了$description
但我没有正确使用[date]
。 有任何想法吗?
我认为一个更简单的形式可以做到:
#.*?\[\s*?date\s*?\](.*)\[\s*?/date\s*?\].*#
例如?
([date]+)
这将寻找包含d
, a
, t
和/或e
一个或多个字母序列。 []
是字符类的正则表达式元字符,出于匹配目的,不会将它们视为文字字符。 您可能想要:
(\[date\]) and (\[\/date\])
以正确匹配那些打开/关闭“标签”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.