使用RegEx在字符串中间获取内容

时间:2015-12-21 21:15:09

标签: php regex string

我有字符串,看起来像这样:

  

Здравствуйте,      Мы - Добропочта。 ДляВасестьанонимноеписьмо:
       ------------------------------

     

{MESSAGE}
  
       ------------------------------
     其他用户手册      Добропочтанесоздаетданныесообщения。
     Суважением,Добропочта。

* {MESSAGE} - 这是我需要的内容

如果我尝试使用chop()执行此操作,则会减少所需的字符数,如果我使用str_ireplace,则根本不会替换public abstract class Entity<T> implements Serializable { protected Map<Language,EntityMetaData> metaData; // constructors, setters, getters etc. } public class Country extends Entity<Long> implements Serializable { // some fields // constructors, setters, getters etc. } public class EntityMetaData extends Entity<Long> implements Serializable { private String name; private String description; private Language language; // constructors, setters, getters etc. } 我无法理解如何做到这一点

1 个答案:

答案 0 :(得分:1)

$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数组的连续元素中。