我有一个类似下面的字符串,
[Session #1: Tues May 31st - Fri June 10th (1-5:30PM)#1 only: 1pmADV] => 2
[Session #1: Tues May 31st - Fri June 10th (1-5:30PM)#1 only: 2pmADV] => 1
[Session #2: Tues June 14th - Fri June 24th (9-2:00PM)#1 only: 2pmADV] => 1
[Session #1: Tues May 31st - Fri June 10th (1-5:30PM)#1 only: 1pmN/S+] => 1
[Session #2: Tues June 14th - Fri June 24th (9-2:00PM)#1 only: 2pmN/S+] => 1
[Session #2: Tues June 14th - Fri June 24th (9-2:00PM)#1 only: 3:30pmN/S+] => 1
我需要删除字符串"pm“之后的文本,直到"]”第一次出现。
例如,
from
[Session #1: Tues May 31st - Fri June 10th (1-5:30PM)#1 only: 1pmADV] => 2
to
[Session #1: Tues May 31st - Fri June 10th (1-5:30PM)#1 only: 1pm] => 2
我该怎么做呢?
发布于 2012-02-10 01:30:38
$str = "[Session #1: Tues May 31st - Fri June 10th (1-5:30PM)#1 only: 1pmADV] => 2"
echo preg_replace('/(?<=pm)\S*?(?=])/is', '', $str);
发布于 2012-02-10 01:27:18
如果所有字符串都是这种格式,则可以使用基本的字符串函数
$str = "[Session #1: Tues May 31st - Fri June 10th (1-5:30PM)#1 only: 1pmADV]";
$str = substr($str, 0, strpos($str, "pm") + 2);
$str .= "]";
发布于 2012-02-10 02:32:29
这样如何:
$str = preg_replace("/(pm)[^\]]+(\])/", "$1$2", $str);
这将删除pm
和第一次出现的]
之间不为]
的所有字符
https://stackoverflow.com/questions/9215568
复制相似问题