Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式查找单词/特定单词前/后的两个单词_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式查找单词/特定单词前/后的两个单词

Javascript 正则表达式查找单词/特定单词前/后的两个单词,javascript,regex,Javascript,Regex,我想在html中找到一个单词,还想得到单词前后的单词。 使用(?:\S+\S)?\Stext\S(?:\S\S+)回答的问题?并使用c#。但不适用于javascript。Javascript看起来不支持?:? 有什么想法吗 比如说 已有两年历史的社交营销平台Woobox最近在优惠券应用程序中增加了对苹果存折的支持。这种集成让企业可以使用其系统创建存折优惠券,甚至可以要求客户在获得优惠券之前进行某种社会活动。例如,他们可能不得不在Facebook上“喜欢”该品牌,或在Twitter上关注该品牌。但

我想在html中找到一个单词,还想得到单词前后的单词。 使用(?:\S+\S)?\Stext\S(?:\S\S+)回答的问题?并使用c#。但不适用于javascript。Javascript看起来不支持
?:

有什么想法吗

比如说

已有两年历史的社交营销平台Woobox最近在优惠券应用程序中增加了对苹果存折的支持。这种集成让企业可以使用其系统创建存折优惠券,甚至可以要求客户在获得优惠券之前进行某种社会活动。例如,他们可能不得不在Facebook上“喜欢”该品牌,或在Twitter上关注该品牌。但该公司还刚刚增加了另一项功能,这可能会真正刺激小企业采用存折:通过短信支持存折优惠券

当我搜索“优惠券”时,我会得到四个结果:“它的优惠券应用程序”,“使用存折优惠券”,“优惠券”,“存折优惠券超过”

如果

(?:\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];
} 

JavaScript确实支持语法
(?:…)
。它甚至支持对您的任务有用的功能,只是它不支持lookback。

JavaScript确实支持
(?:…)
-您的问题到底在哪里?请将整个问题放在这个问题中。不要让我们转到另一个问题来了解你在问什么。我应该转义“?:”像“\\?:”不,只有当你想匹配一个问号和一个colonmy代码时,才可以使用其他regexp,但使用这个regex无法得到错误结果。当搜索“或”但得到“世界”时,我不明白你在那里写了什么。我怀疑你想使用单词边界(搜索
\bor\b
而不是
)。我搜索“优惠券”,它工作正常,可以得到类似“优惠券”的结果,但也可以得到“优惠券”,所以我在搜索单词前后添加“\b”,然后只能得到“优惠券”,不要包含“优惠券”周围的词语。@atu0830:这没有帮助。你写的东西语无伦次,不完整。请用几个例子来编辑你的问题,比如你有什么文本,你做了什么或不想匹配什么部分,你用什么正则表达式,以及正则表达式没有按照你的预期做什么。