改善我的regex + php替换

杰克·NUMBER

我正在尝试用正则表达式替换字符串的一部分。我的代码可以完成这项工作,但这是正确的方法吗?

$string = 'blabla <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> blabla <!-- scat --><img src="{SMILIES_PATH}/cat2.gif" alt="cat" title="Cat" /><!-- scat --> blabla';
$pattern = '(<!-- s(\S*) --><img src="\S*" alt="\S*" title="[^"]+" \/><!-- s\S* -->)';

preg_match_all($pattern, $string, $result);

$i = 0;
foreach ($result[0] as $match) {
    $string = str_replace($match, $result[1][$i], $string);
    $i++;
}

我想要什么:blabla :D blabla cat blabla

正则表达式测试:https : //regex101.com/r/fD0xI2/2

PHP测试:http//ideone.com/mrS0BJ

佩德罗·洛比托

我想你可以减少正则表达式的大小,即:

$string = 'blabla <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> blabla <!-- scat --><img src="{SMILIES_PATH}/cat2.gif" alt="cat" title="Cat" /><!-- scat --> blabla';

preg_match_all('/(\S+) <!-- (.*?) -->/sm', $string , $matches, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($matches[1]); $i++) {
    $newString .= $matches[1][$i] ." ".$matches[2][$i]." " ;
}

echo $newString;

输出:

blabla s:D blabla scat 

演示:

http://ideone.com/9fons0


正则表达式扩展:

(\S+) <!-- (.*?) -->

Options: Dot matches line breaks; ^$ match at line breaks; Greedy quantifiers

Match the regex below and capture its match into backreference number 1 «(\S+)»
   Match a single character that is NOT a “whitespace character” «\S+»
      Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
Match the character string “ <!-- ” literally « <!-- »
Match the regex below and capture its match into backreference number 2 «(.*?)»
   Match any single character «.*?»
      Between zero and unlimited times, as few times as possible, expanding as needed (lazy) «*?»
Match the character string “ -->” literally « -->»

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP Regex替换标签

来自分类Dev

使用PHP将regex替换为regex

来自分类Dev

我的Regex可以改善吗?

来自分类Dev

用单词regex php替换单词

来自分类Dev

我可以替换PHP中的注释

来自分类Dev

改善我在php中的搜索引擎-mysql

来自分类Dev

替换iframe以改善SEO

来自分类Dev

php,regex和ldifde base64_encode /替换多行

来自分类Dev

RegEx使用php替换字符串结尾

来自分类Dev

PHP Regex替换方括号和方括号之间的文本

来自分类Dev

PHP regex - 用链接替换多个标签之间的文本

来自分类Dev

我如何使用ajax和php替换为div

来自分类Dev

我想用php中的check或crossmark动态替换yes / no选项

来自分类Dev

我可以替换 ajax 中的 php 代码而不是 url:

来自分类Dev

替换循环?此功能有效,但需要很长时间。我正在寻找改善它的方法

来自分类Dev

php regex-用字符串中的链接替换所有@usernames

来自分类Dev

REGEX用$ test [“ index”]替换php4样式数组$ test [index]

来自分类Dev

如何使用preg_replace和regex表达式替换php文件中的代码块?

来自分类Dev

用PHP中的Regex替换字符串的一部分

来自分类Dev

PHP Regex在两个表达式中替换表达式

来自分类Dev

REGEX用$ test [“ index”]替换php4样式数组$ test [index]

来自分类Dev

PHP-REGEX-用pre标记内的<br>替换换行符

来自分类Dev

PHP Regex替换链接(如果它没有数据属性)

来自分类Dev

PHP Regex:如何将 rel=stylesheet 替换为 rel=preload?

来自分类Dev

使用Regex替换或替换Perl

来自分类Dev

PHP Regex不响应我的意愿

来自分类Dev

用正则表达式 php 替换文本,我收到此错误

来自分类Dev

php SimpleXmlElement xpath 按值替换节点。我可以通过属性找到这个节点吗?

来自分类Dev

从我的 PHP 网站的 URL 中隐藏动态页面“movie.php?id=10”并用连字符替换空格

Related 相关文章

  1. 1

    PHP Regex替换标签

  2. 2

    使用PHP将regex替换为regex

  3. 3

    我的Regex可以改善吗?

  4. 4

    用单词regex php替换单词

  5. 5

    我可以替换PHP中的注释

  6. 6

    改善我在php中的搜索引擎-mysql

  7. 7

    替换iframe以改善SEO

  8. 8

    php,regex和ldifde base64_encode /替换多行

  9. 9

    RegEx使用php替换字符串结尾

  10. 10

    PHP Regex替换方括号和方括号之间的文本

  11. 11

    PHP regex - 用链接替换多个标签之间的文本

  12. 12

    我如何使用ajax和php替换为div

  13. 13

    我想用php中的check或crossmark动态替换yes / no选项

  14. 14

    我可以替换 ajax 中的 php 代码而不是 url:

  15. 15

    替换循环?此功能有效,但需要很长时间。我正在寻找改善它的方法

  16. 16

    php regex-用字符串中的链接替换所有@usernames

  17. 17

    REGEX用$ test [“ index”]替换php4样式数组$ test [index]

  18. 18

    如何使用preg_replace和regex表达式替换php文件中的代码块?

  19. 19

    用PHP中的Regex替换字符串的一部分

  20. 20

    PHP Regex在两个表达式中替换表达式

  21. 21

    REGEX用$ test [“ index”]替换php4样式数组$ test [index]

  22. 22

    PHP-REGEX-用pre标记内的<br>替换换行符

  23. 23

    PHP Regex替换链接(如果它没有数据属性)

  24. 24

    PHP Regex:如何将 rel=stylesheet 替换为 rel=preload?

  25. 25

    使用Regex替换或替换Perl

  26. 26

    PHP Regex不响应我的意愿

  27. 27

    用正则表达式 php 替换文本,我收到此错误

  28. 28

    php SimpleXmlElement xpath 按值替换节点。我可以通过属性找到这个节点吗?

  29. 29

    从我的 PHP 网站的 URL 中隐藏动态页面“movie.php?id=10”并用连字符替换空格

热门标签

归档