正则表达式替换中用符号包裹的匹配字符串

本杰明·杰洛文(Benjamin Gerlovin)

我试图弄清楚如何在我的WordPress博客上实现Regex。

问题

我想用某些内联样式替换某些内容,并且我正在使用Regex来完成此操作。

我的想法如下:找到用特殊符号包裹的字符串,即“〜string〜”,并用具有特定类的跨度动态替换它。

我将获得与SO的行内code突出显示功能类似的效果,但是我没有使用反引号,而是使用“〜”作为我的选择符号(因为WordPress已经将“`”标识为代码)。

快速范例

原文

This is a demo paragraph with a wrapped string ~here~, with another string ~~here~~.

正则表达式替换后

This is a demo paragraph with a wrapped string <span class="classOne">here</span>, with another string <span class="classTwo">here</span>.

我在努力

我正在使用的正则表达式是:/~(.*?)~/,它可以很好地找到诸如“〜demo〜”之类的字符串,但是我不确定如何扩展它以便能够找到字符串带有多个分隔符,例如:“ ~~ demo ~~”。

对我而言,棘手的部分是它需要区分一个“〜”与两个,因为我想为每个结果分配不同的替换。

任何帮助,将不胜感激!提前致谢。

维克多·史翠比维

您可以使用

~~([\s\S]*?)~~(?!~)|~([^~]*)~

请参阅regex演示细节:

  • ~~([\s\S]*?)~~(?!~)- ~~,然后是捕获组#1,它匹配任何零个或多个字符,但应尽可能少,然后是~~子字符串,后跟另一个~字符
  • | - 要么
  • ~([^~]*)~-一个~,然后捕获组#2匹配零个或多个字符以外~,再一个~

如果在PHP中使用它,则可以在与preg_replace_callback特定捕获组匹配时使用其中可以定义单独的替换逻辑的模式

看一个PHP演示

$html = 'This is a demo paragraph with a wrapped string ~here~, with another string ~~here~~.';
echo preg_replace_callback('/~~([\s\S]*?)~~(?!~)|~([^~]*)~/', function ($m) {
    return !empty($m[1]) ? '<span class="classTwo">' . $m[1] . '</span>' : '<span class="classOne">' . $m[2] . '</span>';
},$html);
// => This is a demo paragraph with a wrapped string <span class="classOne">here</span>, with another string <span class="classTwo">here</span>.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python中用正则表达式匹配和替换多个字符串

来自分类Dev

如何在Java中用正则表达式来替换性地替换字符串

来自分类Dev

如何使用嵌套组在Java中用正则表达式替换字符串

来自分类Dev

在sed中用正则表达式替换字符串

来自分类Dev

在Powershell中用正则表达式替换子字符串

来自分类Dev

在python中用正则表达式匹配字符串的开头和结尾

来自分类Dev

如何在C ++正则表达式中用大括号{匹配字符串

来自分类Dev

如何正则表达式匹配和正则表达式替换php中的字符串

来自分类Dev

用正则表达式替换字符串,如果某些单词与数组匹配则替换

来自分类Dev

将正则表达式匹配项替换为包含匹配项的字符串

来自分类Dev

如果字符串与正则表达式匹配,则替换,如果不匹配则添加变量

来自分类Dev

替换正则表达式匹配的字符串中的字符

来自分类Dev

正则表达式-替换匹配字符串中的字符

来自分类Dev

Java/Groovy - 字符串:替换匹配正则表达式上的字符

来自分类Dev

如何使用正则表达式替换符号字符串

来自分类Dev

正则表达式用美元符号替换字符串,奇怪的输出

来自分类Dev

正则表达式-查找并替换字符串

来自分类Dev

正则表达式替换重复字符串

来自分类Dev

正则表达式替换字符串

来自分类Dev

用正则表达式替换字符串

来自分类Dev

PHP正则表达式字符串替换

来自分类Dev

使用正则表达式替换字符串

来自分类Dev

正则表达式替换字符串

来自分类Dev

Java字符串替换正则表达式

来自分类Dev

字符串数字正则表达式替换

来自分类Dev

正则表达式中的字符串替换

来自分类Dev

正则表达式替换总字符串

来自分类Dev

正则表达式用于字符串替换

来自分类Dev

使用正则表达式替换字符串

Related 相关文章

  1. 1

    如何在Python中用正则表达式匹配和替换多个字符串

  2. 2

    如何在Java中用正则表达式来替换性地替换字符串

  3. 3

    如何使用嵌套组在Java中用正则表达式替换字符串

  4. 4

    在sed中用正则表达式替换字符串

  5. 5

    在Powershell中用正则表达式替换子字符串

  6. 6

    在python中用正则表达式匹配字符串的开头和结尾

  7. 7

    如何在C ++正则表达式中用大括号{匹配字符串

  8. 8

    如何正则表达式匹配和正则表达式替换php中的字符串

  9. 9

    用正则表达式替换字符串,如果某些单词与数组匹配则替换

  10. 10

    将正则表达式匹配项替换为包含匹配项的字符串

  11. 11

    如果字符串与正则表达式匹配,则替换,如果不匹配则添加变量

  12. 12

    替换正则表达式匹配的字符串中的字符

  13. 13

    正则表达式-替换匹配字符串中的字符

  14. 14

    Java/Groovy - 字符串:替换匹配正则表达式上的字符

  15. 15

    如何使用正则表达式替换符号字符串

  16. 16

    正则表达式用美元符号替换字符串,奇怪的输出

  17. 17

    正则表达式-查找并替换字符串

  18. 18

    正则表达式替换重复字符串

  19. 19

    正则表达式替换字符串

  20. 20

    用正则表达式替换字符串

  21. 21

    PHP正则表达式字符串替换

  22. 22

    使用正则表达式替换字符串

  23. 23

    正则表达式替换字符串

  24. 24

    Java字符串替换正则表达式

  25. 25

    字符串数字正则表达式替换

  26. 26

    正则表达式中的字符串替换

  27. 27

    正则表达式替换总字符串

  28. 28

    正则表达式用于字符串替换

  29. 29

    使用正则表达式替换字符串

热门标签

归档