javascript - 代码高亮,求一个正则表达式
巴扎黑
巴扎黑 2017-04-10 14:46:03
[JavaScript讨论组]

我在编写一个代码高亮的插件,求一个正则表达式,把 javascript 的正则形式(即:/abc/g 的正则形式)识别出来。
例如,把【var rstr = /(['"]).*?\1/gm;】中的【/(['"]).*?\1/gm】识别出来。
多谢啦!

巴扎黑
巴扎黑

全部回复(2)
大家讲道理
\/.+\/[gim]*
大家讲道理
(?<!\/)\/(?:[^\/\\\n\r]|\\.)+\/[a-z]*

用了个零宽度正回顾后发断言 就是前面的(?<!\/), 表示匹配块前面不能有/,避免匹配到注释//abc/的情况

测试 Python

>>> reg = '(?<!\/)\/(?:[^\/\\\n\r]|\\.)+\/[a-z]*'
>>> str = 'var rstr = /([\'"]).*?\\1/gm;  //abc/'
>>> re.findall(reg, str)
['/([\'"]).*?\\1/gm']

如果是用Javascript,忽略吧,Javascript不支持后发断言,要避免匹配到注释,就只能优先匹配是否是注释

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

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