-3

我想在html中找到一个单词,也想得到单词前后的单词。 这个问题通过使用 (?:\S+\s)?\S text\S (?:\s\S+)? 并使用 c#。但不适用于javascript。Javascript 看起来不支持?:
有任何想法吗?

例如

Woobox 是一个已有两年历史的社交营销平台,最近在其优惠券应用程序中增加了对 Apple Passbook 的支持。该集成允许企业使用其系统创建 Passbook 优惠券,甚至可以要求客户在获得优惠券之前执行某种社交活动。例如,他们可能必须在 Facebook 上“喜欢”该品牌或在 Twitter 上关注他们。但该公司还刚刚添加了另一个可以真正促进小企业采用 Passbook 的功能:通过 SMS 支持 Passbook 优惠券。

当我搜索“优惠券”时,我应该得到四个结果:“它的优惠券应用程序”、“使用存折优惠券”、“优惠券。”、“存折优惠券结束”

4

2 回答 2

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];
} 
于 2012-10-10T17:45:41.497 回答
0

JavaScript确实支持非匹配组语法(?:…)。它甚至支持对您的任务有用的前瞻,只是它不支持后瞻。

于 2012-10-10T17:45:52.217 回答