【问题标题】:Replace a string under condition (Regex?)在条件下替换字符串(正则表达式?)
【发布时间】:2016-03-09 15:55:38
【问题描述】:

我正在寻找搜索和替换的解决方案。 我需要在特定字符串 BUT 之后添加一个空格,前提是还没有。 正则表达式对我来说是高级的。有人想帮我吗?

例如

Lorem ipsum[something]abcdefg[/something]dolor sit amet

需要替换为

Lorem ipsum[something]abcdefg[/something] dolor sit amet

所以,我需要搜索[/something],如果后面没有空格,则进行替换...

【问题讨论】:

  • 语言是什么?
  • 对不起,我不知道 Regex 与语言相关,它是 PHP 或执行 mySql 语句
  • MySQL 语句肯定不行。我将删除该标签。
  • 正则表达式与语言无关,但替换所有出现的方式是。在 Java 中,你会写类似s.replaceAll("yourregex", "new value") 的东西。在 javascript 中会类似于 s.replace(/yourregex/g, RegExp.$1...)
  • @BorisKozarac 我的回答肯定可以解决您的问题。试试看并告诉我们:)

标签: php regex replace


【解决方案1】:

正则表达式可以是这样的:

/(\[\/something\])(?!\s)/gmi

您可以在这里测试并了解完整的解释:

https://regex101.com/r/pC4pQ3/1

如果您看到第一个是有针对性的,因为不是空格,但第二个是相反的。

要在 PHP 中应用此功能,您必须使用 preg_replace()。像这样的:

$string = "Lorem ipsum[something]abcdefg[/something]dolor sit amet";
echo preg_replace("/(\[\/something\])(?!\s)/", "\1 ", $string);
// result: "Lorem ipsum[something]abcdefg[/something] dolor sit amet"

【讨论】:

    猜你喜欢
    • 2019-06-18
    • 1970-01-01
    • 2018-07-13
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多