Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.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正则表达式匹配所有&;文本中的字符忽略编码,如), &;nbsp;等_Javascript_Regex_Regex Negation_Regex Lookarounds - Fatal编程技术网

Javascript正则表达式匹配所有&;文本中的字符忽略编码,如), &;nbsp;等

Javascript正则表达式匹配所有&;文本中的字符忽略编码,如), &;nbsp;等,javascript,regex,regex-negation,regex-lookarounds,Javascript,Regex,Regex Negation,Regex Lookarounds,我的要求是这样的字符串 Edit the Expression &1 Text to & se&e matches ). Roll & over   ma&tches & or t 我需要选择所有的“&”字符,忽略编码中的字符。我已经实现了选择所有编码字符。这是一本书。现在我需要忽略它们,选择其他'&' 您的正则表达式可能被视为正在进行的工作,例如匹配&您还可以将当前正则表达式编写为

我的要求是这样的字符串

Edit the Expression    &1   Text to  & se&e matches ). Roll & over    ma&tches & or t

我需要选择所有的“&”字符,忽略编码中的字符。我已经实现了选择所有编码字符。这是一本书。现在我需要忽略它们,选择其他'&'

您的正则表达式可能被视为正在进行的工作,例如匹配
&
您还可以将当前正则表达式编写为
和(?:#x?(?:\d{2}\w{4})。为了稍微概括一下,您甚至可以将其更改为
/&(?:#x?)\w{1,4}/

您的问题是如何否定这些实体,并在所有其他位置匹配
&
。通过捕获组和一些代码,很容易实现一个简单的目标

var s=“编辑表达式和文本以查看匹配项(&E));。滚轴及;在ma&tches&或表达式上查看详细信息。用ctrl-z键撤消错误。保存收藏夹并与朋友或社区共享表达式。使用和工具探索您的结果(&O)。可在库中获取完整的参考和帮助,或观看视频教程&;或&;或&;";
var re=/(&(?:x?)\w{1,4};)&/g;
var result=s.replace(re,函数($0,$1){返回$1?$1:“&;;});

console.log(result)
您的正则表达式可能被视为正在进行中的工作,例如,为了匹配
&;
,您还可以将当前正则表达式编写为
&(?:#x?(?:\d{2}\w{4})
。为了稍微概括一下,您甚至可以将其更改为
/&(?:#x?\w{1,4};

您的问题是如何否定这些实体,并在所有其他位置匹配
&
。通过捕获组和一点代码很容易实现一个目标

var s=“编辑表达式和文本以查看匹配项(&E));。滚轴及;在ma&tches&或表达式上查看详细信息。用ctrl-z键撤消错误。保存收藏夹并与朋友或社区共享表达式。使用和工具探索您的结果(&O)。可在库中获取完整的参考和帮助,或观看视频教程&;或&;或&;";
var re=/(&(?:x?)\w{1,4};)&/g;
var result=s.replace(re,函数($0,$1){返回$1?$1:“&;;});

console.log(结果)
什么是“忽略编码中的符号”?你的意思是要忽略像
&
这样的实体,但要匹配其他的符号吗?你可以先将所有实体转换为它们所代表的字符,然后返回并搜索符号,但这会。仍然匹配任何编码为
的符号r
&;
&;
。假设所有文本实体的长度均为4个字符,但事实并非如此。您是否考虑过将实体转换为文本以呈现文本,然后执行匹配?您可以通过反向前瞻来“否定”正则表达式:
&(?!#?(\d{2}\w{4})
-但是首先你应该修正你的正则表达式,使其真正匹配所有的“编码字符”。你将如何处理这两种类型的
?替换?请为你给定的输入提供一个输出示例。什么是“忽略编码中的字符”?你的意思是想忽略像
这样的实体,但要匹配其他的符号吗?您可以首先将所有实体转换为它们所代表的字符,然后返回并搜索符号and,但这仍然会匹配任何编码为
&&38;
&&x26;
的实体。您假设所有文本实体都有4个字符长,但事实并非如此。您是否考虑过转换to文本和呈现文本的实体,然后执行匹配?您可以通过负前瞻:
&(?!#?(\d{2}\w{4})来“否定”正则表达式
-但首先您应该修复正则表达式,使其与所有“编码字符”真正匹配。您将如何处理这两种类型的
&
?替换?请提供给定输入的示例输出。