【发布时间】:2016-12-03 11:28:31
【问题描述】:
我正在尝试在 JavaScript 中编写一个正则表达式,它将匹配任何字符串,只要它以空格开头,然后是 octothorpe(#),然后是字符。但是,我希望这个表达式排除十六进制代码。
我有这个表达式来捕获#tags:
/([\s]#[^<\s]+)/g
我有一个表达式,它以我的较大程序将接收它们的格式 (#xxxxxx) 捕获十六进制代码:
/(#[0-9a-fA-F]{6,6}\b)/g
但我不知道如何将它们放在一起,以便最终得到第一个表达式描述的匹配项,而不是第二个表达式描述的匹配项。
我想在一个正则表达式语句中完成所有事情。如果这是不可能的,我想知道一种使用正则表达式和 JavaScript 函数的组合来获取所有以 # 开头的非十六进制字符串的方法。如果有帮助,我正在使用 jQuery 和 Backbone.js。
额外积分:
这有什么区别:
/(#[0-9a-fA-F]{6,6}\b)/g
还有这个:
/(#[0-9a-fA-F]{6}\b)/g
我一直在使用https://regex101.com 来编写和测试我的表达式,两者似乎给出了相同的结果。
【问题讨论】:
-
你能提供测试输入吗?你想匹配什么?你想不匹配什么?额外积分:您可以创建一个 regex101.com 永久链接,显示您在做什么。
-
额外积分:唯一的区别是:
{6}比{6,6}漂亮得多
标签: javascript regex regex-negation