繁体   English   中英

使用正则表达式从字符串中提取某些文本

[英]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]+)

这将寻找包含dat和/或e一个或多个字母序列。 []是字符类的正则表达式元字符,出于匹配目的,不会将它们视为文字字符。 您可能想要:

(\[date\])   and    (\[\/date\])

以正确匹配那些打开/关闭“标签”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM