Php 使用正则表达式在字符串中间获取内容
我有一个字符串,看起来像这样: ааааааааааа, Мы – Добропочта. аааааааааааа ------------------------------ {MESSAGE}Php 使用正则表达式在字符串中间获取内容,php,regex,string,Php,Regex,String,我有一个字符串,看起来像这样: ааааааааааа, Мы – Добропочта. аааааааааааа ------------------------------ {MESSAGE} ------------------------------ Сжжжжббб,бгб *{MESSAGE}——这里是我需要获取的内容 如果我尝试使用chop()来执行此操作,它会切割比需要更多的字符,如果我使用stru-ireplace,它根本不会替换 我不明白该怎么做才对 $subject
------------------------------
Сжжжжббб,бгб *
{MESSAGE}
——这里是我需要获取的内容
如果我尝试使用chop()
来执行此操作,它会切割比需要更多的字符,如果我使用stru-ireplace
,它根本不会替换
我不明白该怎么做才对
$subject = "------------------------------\n\nMessage\nmessage line2\n\n------------------------------";
$pattern = '/(?s)-{30}\n\n(.*?)\n\n-{30}/';
preg_match($pattern, $subject, $matches);
print_r($matches[1]);
用字符串替换$subject
。$matches[1]
将包含您的消息。我假设总是正好有30个破折号 说明:
(.*)
创建一个组。可以在$matches[1]
中访问与该组匹配的输入字符串的内容。如果有多个组,它们将位于$matches数组的连续元素中 {MESSAGE}中的@anubhava可以是任何文本,我尝试通过{MESSAGE}分解它,然后删除字符串的这两部分来匹配它,{MESSAGE}总是由一行破折号后跟一行空行进行,它总是由一行空行后跟一行破折号吗?