regex开始和结束匹配
regex start and end matching
所以我在正则表达式中遇到了一点麻烦,我有一个分别匹配开头和结尾的表达式。当我试图在同一个表达式中匹配开头和结尾时,就会出现问题,我不明白为什么会出现问题。我甚至尝试过计算开始和结束标签之间的内容,但仍然没有成功。
Works: /^([ ])?'[('/?)gaiarch(=[^"]*)?]([ ])?/ig
Works: /([ ])?'[('/?)gaiarch(=[^"]*)?]([ ])?$/ig
Doesn't work: /^([ ])?'[('/?)gaiarch(=[^"]*)?]([ ])?$/ig
我想让它匹配:
[gaiarch=slider]
[img url="http://i1251.photobucket.com/albums/hh543/Knight-Yoshi/trade_c.png" text="Trading Image" goto="http://www.gaiaonline.com/gaia/bank.php?mode=trade&uid=15388423"],[img url="http://i1251.photobucket.com/albums/hh543/Knight-Yoshi/friend_c.png" text="Friends Image" goto="http://www.gaiaonline.com/friends/add/15388423"][/gaiarch]
[gaiarch=slider][img url="http://i1251.photobucket.com/albums/hh543/Knight-Yoshi/gaiaonline/thread/post/dark-center_bottom_zps419960f4.gif" text="bottom bar"]
[img url="http://i1251.photobucket.com/albums/hh543/Knight-Yoshi/gaiaonline/thread/post/star-say_right_zpsdc3769f3.png" goto="http://www.gaiaonline.com/"][/gaiarch]
问题是您没有匹配打开和关闭标记之间的内容;表达式要求字符串中只有一个开始或结束标记。
要匹配打开和关闭标签之间的内容,您需要这样的东西:
/'[gaiarch(?:=([^']]+))?'](.*?)'['/gaiarch']/ig
要使此表达式工作,可以使用RegExp.exec()
:
var re = /'[gaiarch(?:=([^']]+))?'](.*?)'['/gaiarch']/ig;
while ((match = re.exec(str)) !== null) {
console.log(match[1]) // "slider"
console.log(match[2]) // "[img url=...]"
}
相关文章:
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 处理第三方库发送的ajax请求的开始和结束事件
- 从工作日结束到下一个工作日开始的完整日历JS包装时间
- 使用javascript&自定义验证器检查开始日期和结束日期
- 如何在上一个动画结束后开始动画
- 如何在dhtmlxgantt中显示灯箱中的开始日期、结束日期和持续时间
- 如何在javascript中获得给定的月份开始日期和结束日期
- 在选择开始日期后设置结束日期
- 基础日期选择器、结束日期(和时间)不能早于开始日期(和时间)
- 在JavaScript中搜索文本并获取其所有开始和结束索引
- 结束日期作为基础日期时间选择器中的选定开始日期
- 检测事件回调的开始和结束
- 从 ngDialog 模式修改完整日历事件信息(开始和结束)
- 开始日期和结束日期输入字段的 JQuery 筛选器表
- 在ExtJS中获取开始/结束日期之间的日期
- 根据DOM,HTML元素的开始和结束标记之间的内容被称为属性.这个房产的名字是什么
- 如何在Dynamics CRM中获取时区的夏令时开始和结束时间
- Regexp表示不允许在结束/开始处使用特殊字符,但应该允许空格
- Spotify JavaScript API歌曲结束/开始事件与新的API
- 完整日历-结束/开始事件的日期格式