首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用regex删除最后一个特定字符串?

如何使用regex删除最后一个特定字符串?
EN

Stack Overflow用户
提问于 2012-03-02 21:15:07
回答 4查看 287关注 0票数 0

嗨,我有下面这样的字符串,

代码语言:javascript
运行
复制
$aa = "Ability: N/S,Session: Session #2: Tues June 14th - Fri June 24th (9-2:00PM),Time: 10:30am,cname: karthi";

$aa = "Ability: N/S,Session: Session #1: Tues May 31st - Fri June 10th (1-5:30PM),Time: #1 only: 1:30pm,cname: ravi";

$aa = "Ability: N/S,Session: Session #1: Tues May 31st - Fri June 10th (1-5:30PM),Time: #1 only: 1am,cname: mathi";

我需要编写一个正则表达式来删除",cname:“中的特定字符串,直到最后。我需要这样的输出,

代码语言:javascript
运行
复制
$aa = "Ability: N/S,Session: Session #2: Tues June 14th - Fri June 24th (9-2:00PM),Time: 10:30am";

    $aa = "Ability: N/S,Session: Session #1: Tues May 31st - Fri June 10th (1-5:30PM),Time: #1 only: 1:30pm";

    $aa = "Ability: N/S,Session: Session #1: Tues May 31st - Fri June 10th (1-5:30PM),Time: #1 only: 1am";

我如何在正则表达式中做到这一点?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-02 21:20:45

为此,您不需要正则表达式。您可以使用strpos()查找',cname:‘的索引,然后substr()到该索引。

代码语言:javascript
运行
复制
<?php

$aa = "Ability: N/S,Session: Session #1: Tues May 31st - Fri June 10th (1-5:30PM),Time: #1 only: 1am,cname: mathi";
$pos = strpos($aa, ',cname:');
$bb = substr($aa, 0, $pos);
echo $bb, "\n";

但是,如果您出于某种原因坚持使用正则表达式,那么您将需要使用preg_replace()

代码语言:javascript
运行
复制
<?php

$aa = "Ability: N/S,Session: Session #1: Tues May 31st - Fri June 10th (1-5:30PM),Time: #1 only: 1am,cname: mathi";
$bb = preg_replace('#,cname:.*$#', '', $aa);
echo $bb, "\n";

如果您不想修改该字符串,则可能需要使用preg_match()

代码语言:javascript
运行
复制
<?php

$aa = "Ability: N/S,Session: Session #1: Tues May 31st - Fri June 10th (1-5:30PM),Time: #1 only: 1am,cname: mathi";
if (preg_match('#^(.+),cname:.*$#', $aa, $match)) {
    echo $match[1], "\n";
}
票数 1
EN

Stack Overflow用户

发布于 2012-03-02 21:20:26

试一试

代码语言:javascript
运行
复制
/,cname:.*$/

并替换为空字符串。

代码语言:javascript
运行
复制
$result = preg_replace('/,cname:.*$/', '', $aa);

查看here on Regexr

票数 1
EN

Stack Overflow用户

发布于 2012-03-02 21:19:35

代码语言:javascript
运行
复制
/^(.*),cname:.*;$/

由此正则表达式生成的组1 ($1)将给出您想要的结果。

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

https://stackoverflow.com/questions/9533926

复制
相关文章

相似问题

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