如何从摘录开头删除大写字母?

时间:2018-07-04 15:01:46

标签: php regex

假设文本如下...

NEW YORK -- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce eget ante pellentesque, tempus augue non, volutpat augue. Donec accumsan eros eget felis molestie maximus non quis nulla. Nullam ante tellus, vestibulum at rutrum quis, rutrum eget magna. Nulla nec nulla blandit, venenatis enim non, accumsan justo. Nunc aliquam libero vitae dui fermentum malesuada. In vel interdum leo, a elementum risus.

...如何在PHP中删除“ NEW YORK --”部分?

也就是说:

  • 任何一个或多个大写单词,包括它们是否包含符号或空格(例如CANNESFLORIDABURTON-ON-TRENT
  • 仅在开始提供的文本
  • 的地方
  • 该单词的后缀为“ -- Lorem”(空格,双破折号,空格),后跟字母句子。

我只希望保留“ --”之后的部分。

1 个答案:

答案 0 :(得分:0)

$string = 'NEW YORK -- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce eget ante pellentesque, tempus augue non, volutpat augue. Donec accumsan eros eget felis molestie maximus non quis nulla. Nullam ante tellus, vestibulum at rutrum quis, rutrum eget magna. Nulla nec nulla blandit, venenatis enim non, accumsan justo. Nunc aliquam libero vitae dui fermentum malesuada. In vel interdum leo, a elementum risus.';

$res = preg_replace('/^[-A-Z\h]*?-- /', '', $string);
echo $res;

输出:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce eget ante pellentesque, tempus augue non, volutpat augue. Donec accumsan eros eget felis molestie maximus non quis nulla. Nullam ante tellus, vestibulum at rutrum quis, rutrum eget magna. Nulla nec nulla blandit, venenatis enim non, accumsan justo. Nunc aliquam libero vitae dui fermentum malesuada. In vel interdum leo, a elementum risus.

说明:

^               : beginning of string
  [-A-Z\h]*?    : dash or any uppercase or horizontal space, 0 or more times, not greedy
  --            : 2 dashes