当前位置: 首页 > 知识库问答 >
问题:

PHP preg_replace:替换字符串中最后一个连字符之前出现的所有连字符(带空格)

松钟展
2023-03-14

使用preg_replace(或其他基于 PHP 的选项):我需要用空格替换字符串中出现在最后一个连字符之前的所有连字符。

我需要的结果示例1:

String=My-Cool-String-201

结果 = 我的酷字符串 - 201

示例#2我需要的结果:

注意:请注意,此字符串示例仅包含1个连字符。

字符串 = 我的酷字符串 - 201

结果 = 我的酷字符串 - 201

我当前的代码是删除所有连字符并用空格替换。

$origString = 'My-Cool-String - 201';
$newString = preg_replace("/[^A-Za-z0-9]/", ' ', $origString);

其他上下文:

“我的酷字符串 - 201”的示例字符串中

My Cool String代表一个度假村的名称。

201表示房间号。

当度假村的名字包含连字符时,我遇到了我最初陈述的问题。

共有1个答案

拓拔元徽
2023-03-14

你可以使用

preg_replace('/-(?=.* -)/', ' ', $origString)

请参阅PHP演示和正则表达式演示。要考虑任何空格,请使用'/-(? =.*\s-)/''/-(? =.*\s-\s)/'(如果连字符两边都应该有空格)。

细节

    < li> - -连字符 < li> (?=.* -) -一个积极的前瞻,要求尽可能多的在除换行符以外的任何0字符之后有< code> -(在< code>/之后使用< code>s标志以跨换行符匹配)。
 类似资料:
  • 问题内容: 我有这样的字符串 我想用转义双引号(\“)替换最后一个双引号(”) 字符串的结果是 我怎样才能做到这一点。我知道要替换字符串的第一次出现。但不知道如何替换字符串的最后一次出现 问题答案: String str = “"Position, fix, dial"“; int ind = str.lastIndexOf(“"“); if( ind>=0 ) str = new StringB

  • 问题内容: 有谁知道用一个字符串中的另一个字符串替换最后一个出现的字符串的快速方法? 问题答案: 您可以使用此功能:

  • 假设我有一根绳子 我想把“AA”替换成“BB”,但只能是最后一次出现,就像这样: string.replace()和string.replaceFirst()都不能完成这项工作。有string.replaceLast()吗?如果没有,会有一个还是有替代方案也可以处理正则表达式?

  • 每当“q”被写为我附加TextWatcher的edittext的最后一个字符时,这个“q”就会被替换为“a”。我使用: 但是,当我测试代码时,当我输入“q”时,什么也没发生。一些帮助?非常感谢。

  • 这应该只得到数字和返回,但不做它作为预期的!有什么建议吗?

  • 问题内容: 可以说我有一串。如何编写将字符串转换为的方法?还是那里有可用的方法实现? 到目前为止我尝试过的 我正在用它来编写休眠标准。它适用于但不适用。Havent尝试了其他任何字符串。 问题答案: 您可以从0到提取子字符串形式。在此子字符串中,将所有替换为空字符串。之后,与subtring合并(从头到尾)。 就像是: