javascript - 关于正则表达式(JS)正回顾后发问题
ringa_lee
ringa_lee 2017-04-10 16:05:04
[JavaScript讨论组]

我写了一个简单的正则表达式,想匹配标题中的文本,Html如下:
<h1>you are my little princess!</h1>
当前我想写一个最基本的正则匹配,提取文本 you are my little princess!
我写的正则表达式如下:
(?<=<h1>)[\s\S]*?(?=</h1>)

但是我发现(?<=<h1>)无法匹配,我搜索的很多关于回顾后发匹配的文章,见别人也是这样写的。
但是我现在这种写法,我在在线的正则表达式站点测试(http://tool.chinaz.com/regex/),发现无法匹配((?=</h1>) 可以匹配)。

我实在是找不到原因,希望有懂正则表达式的前辈可以帮忙,解决我的疑问~
非常感谢!

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
PHPz
  1. 正则表达式有很多种方言,每个方言下面的实现并不相同,就这个问题而言的话,就是javascript确实并不支持这种反向匹配的语法

  2. 你的正则表达式本身也还有bug,匹配 </h1> 的 / 没有转义,应该是 <\/h1>

  3. 这个正则表达式写的也太繁琐了,给你个简单的(并且也更通用,在不同语言上)

var re = /<h1>(.*?)<\/h1>/;
var result = "<h1>you are my little princess!</h1>".match(re);
console.log(result[1]);
高洛峰

javascript目前不支持反向预查

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号