首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在php中使用regex删除指定字符串后面的特定字符串?

如何在php中使用regex删除指定字符串后面的特定字符串?
EN

Stack Overflow用户
提问于 2012-02-10 01:18:14
回答 3查看 230关注 0票数 0

我有一个类似下面的字符串,

代码语言:javascript
运行
复制
 [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“之后的文本,直到"]”第一次出现。

例如,

代码语言:javascript
运行
复制
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

我该怎么做呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-10 01:30:38

代码语言:javascript
运行
复制
$str = "[Session #1: Tues May 31st - Fri June 10th (1-5:30PM)#1 only: 1pmADV] => 2"
echo preg_replace('/(?<=pm)\S*?(?=])/is', '', $str);
票数 0
EN

Stack Overflow用户

发布于 2012-02-10 01:27:18

如果所有字符串都是这种格式,则可以使用基本的字符串函数

代码语言:javascript
运行
复制
$str = "[Session #1: Tues May 31st - Fri June 10th (1-5:30PM)#1 only: 1pmADV]";
$str = substr($str, 0, strpos($str, "pm") + 2);
$str .= "]";
票数 1
EN

Stack Overflow用户

发布于 2012-02-10 02:32:29

这样如何:

代码语言:javascript
运行
复制
$str = preg_replace("/(pm)[^\]]+(\])/", "$1$2", $str);

这将删除pm和第一次出现的]之间不为]的所有字符

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9215568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档