我设法通过以下方式完成了我想做的事情(不使用Regex):

解析字符串的每个字符

删除所有标签(将它们复制到临时数组并在字符串上保留占位符)

str_replace 新字符串以替换所有关键字

通过原始标签重新填充占位符

如果有人需要,这是我使用的代码:

$str = <<

Moses supposes his toeses are roses,

but Moses supposes erroneously;

for nobody's toeses are posies of roses,

as Moses supposes his toeses to be.

Ganda Moses!

STRA;

$arr1 = str_split($str);

$arr_links = array();

$phrase_holder = '';

$current_a = 0;

$goto_arr_links = false;

$close_a = false;

foreach($arr1 as $k => $v)

{

if ($close_a == true)

{

if ($v == '>') {

$close_a = false;

}

continue;

}

if ($goto_arr_links == true)

{

$arr_links[$current_a] .= $v;

}

if ($v == '

// keep collecting every char until

$arr_links[$current_a] .= $v;

$goto_arr_links = true;

} elseif ($v == '' ) { /* */

$arr_links[$current_a] .= "/a>";

$goto_arr_links = false;

$close_a = true;

$phrase_holder .= "{%$current_a%}"; /* put a parameter holder on the phrase */

$current_a++;

}

elseif ($goto_arr_links == false) {

$phrase_holder .= $v;

}

}

echo "Links Array:\n";

print_r($arr_links);

echo "\n\n\nPhrase Holder:\n";

echo $phrase_holder;

echo "\n\n\n(pre) Final Phrase (with my keyword replaced):\n";

$final_phrase = str_replace("Moses", "Moses", $phrase_holder);

echo $final_phrase;

echo "\n\n\nFinal Phrase:\n";

foreach($arr_links as $k => $v)

{

$final_phrase = str_replace("{%$k%}", $v, $final_phrase);

}

echo $final_phrase;

输出:

链接数组:

Array

(

[0] => Moses

[1] => Moses

)

词组:

Moses supposes his toeses are roses,

but {%0%} supposes erroneously;

for nobody's toeses are posies of roses,

as Moses supposes his toeses to be.

Ganda {%1%}!

(上)最终词组(替换为我的关键字):

Moses supposes his toeses are roses,

but {%0%} supposes erroneously;

for nobody's toeses are posies of roses,

as Moses supposes his toeses to be.

Ganda {%1%}!

最终词组:

Moses supposes his toeses are roses,

but Moses supposes erroneously;

for nobody's toeses are posies of roses,

as Moses supposes his toeses to be.

Ganda Moses!

php使用正则表达式标记标题,PHP正则表达式以匹配HTML标记a之外的关键字相关推荐

  1. html js正则表达式语法,js正则表达式 非中文_js正则表达式匹配中文_js正则表达式语法...

    腾讯云活动聚集了最新的降价打折.特惠折扣等资料,你在这里可以寻找云服务器.域名..小流程等等多种不同产品的促销活动,还有这些品牌的免费试用哦. 因为对js中的正则不太了解,可以参考一下js 中正则表达 ...

  2. java正则表达式的用法_Java 正则表达式的使用

    Java 正则表达式的使用 1:正则表达式语法大全 字符 说明 \ 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.例如,"n"匹配字符"n".&quo ...

  3. php 匹配双字节字符串,收集一些常用的正则表达式(匹配中文字符、匹配双字节字符、匹配HTML标记、匹配空行 and so on~~~)...

    正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番.我将一些常用的表达式收藏在这里,作备忘之用.本贴随时会更新,请持续关注本站. 匹配中文字符的正则表达式: ...

  4. 转载:常用正则表达式大全!(例如:匹配中文、匹配html)

    常用正则表达式大全!(例如:匹配中文.匹配html) 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[ ...

  5. java正则表达式 过滤特殊字符的正则表达式

    在网上找了好久也没找到个合适的正则表达式以过滤特殊字符:自己学习了下,写了两个,实现要求. Java代码 // 过滤特殊字符 public static String StringFilter(Str ...

  6. 所有字符不含换行 正则表达式_网络爬虫 | 正则表达式

    正则表达式中匹配与查找 正则表达式,简称为regex,是文本模式的描述方法. >>> import re>>> pattern = re.compile('\d\d ...

  7. python正则表达式操作指南_Python重新正则表达式操作指南

    PYTHON正则表达式指南 python re正则表达式模块的中文介绍: python re模块(正则表达式)提供类似于Perl和其他编程语言的常规匹配操作, 它是处理Python字符串的强大工具,具 ...

  8. mysql正则表达式配置_G. MySQL正则表达式

    附录G:MySQL正则表达式 正则表达式是为复杂搜索指定模式的强大方式. MySQL采用Henry Spencer的正则表达式实施,其目标是符合POSIX 1003.2.请参见附录C:感谢.MySQL ...

  9. java linux runtime 正则表达式_Java学习之正则表达式

    Java正则表达式字符串模式. 正则表达式可以用来搜索.编辑和处理文本. 正则表达式不尽限于一种语言,但在每一种语言中又细微的差别. java.util.regex包中主要有这3个类: Pattern ...

  10. python正则表达式详解compile_python正则表达式详解

    前言正则表达式是一个特殊的字符序列,用来判断一个字符串与我们所设定的字符序列是否相匹配.实现快速检索文本和一些替换文本的操作. 在Python中我们有专门的正则表达式模块re,re 模块使 Pytho ...

最新文章

  1. 2020-09-21C++学习笔记之与C语言区别和加强——四种const意义(const int a; int const b; const int *c; int * const d)
  2. numpy.argwhere 返回的为索引值的array
  3. Python中的那些“坑”
  4. ***linux下mysql的root密码忘记解决方法
  5. 接口与事件之图形界面的认证登录
  6. notepad正则提取
  7. python模拟登录12306_python基于selenium模块实现自动登录12306网站
  8. 面试技能之软知识(HR面试问题回答)
  9. 蓝墨云班课在计算机应用基础的教学,蓝墨云班课在“计算机应用基础”课程教学中的应用效果分析...
  10. 虚拟麦克风音频输入_硅麦克风电路连接指南
  11. matlab画莫尔圆代码,EXCEL莫尔圆.xls
  12. java计算机毕业设计乒乓球俱乐部管理源码+系统+数据库+lw文档+mybatis+运行部署
  13. ContOs的网络配置
  14. 实用干货!正规的问答推广平台有哪些及其优势
  15. 尽管有节制的努力,pinterest仍保留着年轻女孩的反色情模因图片
  16. ElasticSearch 提示 future versions of Elasticsearch will require Java 11解决方法
  17. 小羊驼和你一起学习cocos2d-x与lua之三(lua匿名函数)
  18. ksu7对讲机调频软件_常见对讲机调频方法
  19. Cesium-Primitive图元的讲解
  20. Elias Kiritsis《String Theory in a Nutshell》(埃利亚斯·基里西斯《简明弦论》)中文目录

热门文章

  1. 【转】为什么要用GIT而不是SVN
  2. 文件服务器自动化管理
  3. A. Game With Sticks
  4. 如何在 Mac 上的“通知中心”中添加和自定小组件?
  5. 如何将 Apple Watch 用作闹钟?
  6. 如何在苹果Mac上使用 Siri?
  7. 如何在Mac视频中删除音频呢?
  8. iOS开发之Swift 4 JSON 解析指南
  9. 如何在Mac视频中添加表情符号
  10. Slog86_使用Sketch 设计ArthurSlog网站主页原型