不确定我的正则表达式哪里出错了
Not sure where my Regex went wrong
我正在写一个Javascript bookmarklet作为工作的副业项目(不要以编码为生,非常初学者)。
它扫描cnn.com
记录,并挑选出现场嘉宾的名字和头衔,不包括那些从磁带中播放的。
replace()
和regex删除BEGIN VIDEO CLIP
和END VIDEO CLIP
之间的文本,然后使用另一个正则表达式扫描与NAME, TITLE:
格式匹配的所有内容。它在一些成绩单上很有魅力,但在其他成绩单上却惨败。下面是我的代码:
(function () {
var webPage = document.body.innerText;
var tape = webPage.replace(/(BEGIN VIDEO CLIP)(['s'S]*)(END VIDEO CLIP)|(BEGIN VIDEOTAPE)(['s'S]*)(END VIDEOTAPE)/g, "");
var searchForGuests = /[A-Z ].+,[A-Z0-9 ].+:/g;
var guests = tape.match(searchForGuests).join("; ");
alert("Guests: " + guests)
})();
作为一个例子,当应用到http://transcripts.cnn.com/TRANSCRIPTS/1303/05/pmt.01.html时,它只提醒主持人的名字(Piers Morgan),即使有几个现场客人。是我的正则表达式有问题吗?我一直在Regexr测试,但据我所知,没有在Javascript中使用任何非法的东西。
它应该在以下任何成绩单上工作:http://transcripts.cnn.com/transcripts.
这里的主要问题可能是贪心的['s'S]*
,它将匹配和删除太多。尝试使用['s'S]*?
代替。在*
之后添加的?
使其尽可能少地匹配(而不是尽可能多地匹配)。
在您的searchForGuests
正则表达式中,尝试^([A-Za-z0-9, ]+(?=:))
如果你的文本是:
TOM COUGHLIN, NFL COACH: Preparation is the key to success.
MORGAN: Plus he's worn out his Oscar welcome but she's Hollywood's golden girl, Kristin Chenoweth.
它会返回match:
TOM COUGHLIN, NFL COACH
MORGAN
相关文章:
- reducers在redux中得到Function not Object,what'it’他错了
- 正在尝试为Docpad网站设置Lunr全文搜索插件.我做错了什么
- 谷歌关闭注释赢得'Don’不要告诉我;I’我错了
- Javascript对象/原型.我的理解错了吗
- 什么'这个随机数猜谜游戏错了
- 重新加载重复数据失败,我做错了什么
- 什么'这个谷歌脚本错了
- 柴如承诺即使错了也会过去
- 什么'Gulp错了
- 我做错了什么
- angular mongodb数组格式写错了
- JavaScript排序算法不起作用 - 任何明显的我做错了
- Google Apps 脚本为 getLastRow 抛出电子邮件失败通知,我做错了什么
- Javascript语法 - 我做错了什么
- 角度灯箱不起作用.我做错了什么
- 在这个猫鼬独特的保存前验证中,我做错了什么
- fullcalendar赢得't让我调整事件大小(光标不显示,我做错了)
- document.getElementById为空..什么'I’我的代码错了.
- Javascript-JSON.parse:数据意外结束-使用有效JSON时出错.我做错了什么
- 我做错了什么?405尝试保存值时出错