Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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_Regex Negation - Fatal编程技术网

Javascript 匹配#标记但不匹配十六进制代码的正则表达式

Javascript 匹配#标记但不匹配十六进制代码的正则表达式,javascript,regex,regex-negation,Javascript,Regex,Regex Negation,我正在尝试用JavaScript编写一个正则表达式,它将匹配任何字符串,只要它以空格开头,然后是八进制(#),然后是字符。但是,我希望这个表达式排除十六进制代码 我有一个用于捕获#标记的表达式: 但是我不知道如何把它们放在一起,这样我就得到了第一个表达式描述的匹配,而不是第二个表达式描述的匹配 我想在一个正则表达式语句中完成所有操作。如果这是不可能的,我想知道一种方法来获取所有以#开头的非十六进制字符串,使用regex和JavaScript函数的组合。如果有帮助的话,我正在使用jQuery和Ba

我正在尝试用JavaScript编写一个正则表达式,它将匹配任何字符串,只要它以空格开头,然后是八进制(#),然后是字符。但是,我希望这个表达式排除十六进制代码

我有一个用于捕获#标记的表达式:

但是我不知道如何把它们放在一起,这样我就得到了第一个表达式描述的匹配,而不是第二个表达式描述的匹配

我想在一个正则表达式语句中完成所有操作。如果这是不可能的,我想知道一种方法来获取所有以#开头的非十六进制字符串,使用regex和JavaScript函数的组合。如果有帮助的话,我正在使用jQuery和Backbone.js

额外积分:

这两者之间的区别是什么:

/(#[0-9a-fA-F]{6,6}\b)/g
这是:

/(#[0-9a-fA-F]{6}\b)/g

我一直在用它来编写和测试我的表达式,它们似乎都给出了相同的结果。

您可以在第一个正则表达式中使用第二个正则表达式作为负前瞻(
(?!
):

(?:\s|^)(#(?![\da-fA-F]{6}\b)[^<\s]+)

(?:\s|^)(?![\da-fA-F]{6}\b)[^你能提供测试输入吗?你想匹配什么?你想不匹配什么?额外的学分:你可以制作一个regex101.com永久链接来显示你在做什么。额外的学分:唯一的区别是:
{6}
{6,6}漂亮得多
为什么您已经从否定表达式中删除了0-9块?没有它,解决方案如何仍然有效?因为
\d
是等效的。
/(#[0-9a-fA-F]{6}\b)/g
(?:\s|^)(#(?![\da-fA-F]{6}\b)[^<\s]+)