我想在html中找到一个单词,也希望得到单词前后的单词。
this问题给出了答案(?:\ S + \ s)?\ S text \ S (?:\ s \ S +)?并使用c#。但是不适用于javascript。 Javascript看起来不支持?:
?
有什么想法吗?
例如
Woobox是一个已有两年历史的社交营销平台,最近在其优惠券应用程序中添加了对Apple Passbook的支持。该集成允许企业使用其系统创建Passbook优惠券,甚至可以要求客户在获得优惠券之前执行某种社交活动。例如,他们可能必须在Facebook上“喜欢”该品牌或在Twitter上关注它们。但该公司还刚刚添加了另一项功能,可以在小型企业级别上真正促进Passbook的采用:通过SMS支持Passbook优惠券。
当我搜索“优惠券”时,我应该得到四个结果:'优惠券应用','使用存折优惠券','优惠券。','存折优惠券'
答案 0 :(得分:1)
如果
(?:\S+\s)?\S*text\S*(?:\s\S+)?
在JavaScript中不起作用,你使用它是错误的(或者你需要通过“工作”来定义你的意思)。很可能你没有使用正确的语法来构造一个正则表达式:
var myregexp = /(?:\S+\s)?\S*text\S*(?:\s\S+)?/;
或如何在字符串中找到匹配项:
var match = myregexp.exec(subject);
if (match != null) {
result = match[0];
}
答案 1 :(得分:0)
JavaScript 支持non-matching group语法(?:…)
。它甚至支持lookahead,它可能对您的任务有用,只是它不支持lookbehind。