javascript - 如何在正则表达式中否定类的一部分?

标签 javascript regex

我想在正则表达式中否定类的一部分。假设我们有一个表达式接受从 a 到 z 的重复大小写字母。

[a-zA-Z]+

我如何取反 H 字母?

我试过这个 [a-zA-Z^H]+ 但是 it doesn't block H .

我知道我们可以用其他方式来做,但我正在寻找一个通用规则来在类内部取反。

我使用 JavaScript 风格的正则表达式。

更新

这是更具体的例子。下面是表达式:[\w\-\–]。在 .NET 风格中它接受 unicode 字符,但在 JavaScript 风格中它不接受。然而,有一个技巧可以让表达式也接受 unicode 字符,\w 必须替换为此表达式 ([^\x00-\x7F]|\w)

问题是 - 它不能嵌套在第一个表达式 ([\w\-\–]) 中。这就是为什么我要问如何对类的一部分进行否定。

最佳答案

将我的评论转化为答案。这是一个可用于否定特定字符或范围的正则表达式:

/((?:[^\x00-\x7F]|[-\w–])+)/

RegEx Demo

关于javascript - 如何在正则表达式中否定类的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35745081/

相关文章:

用于字母搜索的 MySQL 查询

javascript - 如何匹配多个序列

javascript - 使用 JavaScript 驱动 Selenium2(通过 WebDriver)有哪些选项?

javascript - Bootstrap Collapse Accordion 一个面板打开,所有其他面板关闭

javascript - 测试数组的每个元素是否为真

c# - 正则表达式替换 - 忽略链接中的内容

javascript - 如何在我的正则表达式中允许 `.`?

regex - 根据未知模式匹配不匹配的字符串

javascript - 在JQuery弹出关闭按钮上调用JS 'X'

javascript - RegEx 无法识别无效电子邮件