问题标签 [character-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
412 浏览

regex - 如何打印 Perl 字符类?

今天早上我在进行代码审查,发现了一些错误的代码,但我不知道为什么。

这条线应该计算为1and之间的十六进制字符C,但我认为这条线不会那样做。问题不是匹配什么,而是匹配什么?我可以打印出字符类中的所有字符吗?像下面这样的东西?

唉,

0 投票
1 回答
106 浏览

regex - 某些主机不喜欢 .htaccess 正则表达式中的字符类?

我很少遇到这个问题,而且只在某些主机上。这是我的自定义框架的 .htaccess:

定义控制器、视图和参数的最后 3 行在某些主机上无法正常工作,其余所有工作正常,因此显然启用了 mod_rewrite。如果我将它们更改为此它可以工作,但这不是我需要的:

有任何想法吗?那些主机不支持 .htaccess 正则表达式中的字符类吗?

谢谢

0 投票
5 回答
8717 浏览

regex - 从字符类中排除字符

有没有一种简单的方法来匹配一个类中的所有字符,除了一组字符?例如,如果在我可以使用 \w 匹配所有 unicode 单词字符集的语言中,有没有办法从匹配中排除下划线“_”之类的字符?

想到的唯一想法是在每个字符周围使用负前瞻/后视,但是当我实际上只想将一个字符与正匹配和负匹配进行匹配时,这似乎比必要的复杂。例如,如果 & 是 AND 运算符,我可以这样做......

0 投票
1 回答
42 浏览

ruby - Ruby regular expression utilizing OR within a character class

While going through the ruby-doc for regular expressions, I came across this example for implementing the && operator:

I understand that

would equate to

because the "^" denotes symbols that should be excluded from the regular expression.

However, I am wondering about why "z" is not also included? Why was the equivalent regular expression NOT:

I am very new to regular expressions, much less any specifics for regular expressions within Ruby, so any help is greatly appreciated!

0 投票
1 回答
1458 浏览

regex - (相当于)“字符类中的反向引用”的一般方法?

在 Perl 正则表达式中,像\1,\2等表达式通常被解释为对先前捕获的组的“反向引用”,但当 , 等出现在字符类中时则\1不然\2。在后一种情况下, the\被视为转义字符(因此\1只是1等)。

因此,如果(例如)想要匹配一个字符串(长度大于 1),该字符串的第一个字符与其最后一个字符匹配,但没有出现在字符串中的任何其他位置,则以下正则表达式将不会

不起作用,因为它匹配(例如)字符串'a1a2a'

我通常可以设法找到一些解决方法1,但它总是针对特定问题,并且通常比我可以在字符类中使用反向引用时要复杂得多。

是否有一个通用的(并且希望是简单的)解决方法?


1例如,对于上面示例中的问题,我会使用类似

...我已经用[^\1]*更令人生畏的否定前瞻断言替换了早期正则表达式中相当简单的(虽然,唉,不正确的)子表达式(?!.*\1.+\z)。这个断言基本上是说“如果\1出现在这一点之外的任何地方(除了最后一个位置),就放弃。” 顺便说一句,我给出这个解决方案只是为了说明我在问题中提到的那种解决方法。我并不认为这是一个特别好的。

0 投票
2 回答
698 浏览

regex - Cygwin 正则表达式速记字符类无法匹配

我有一个文件

如果我匹配[0-9]然后我得到预期

但是,如果我尝试匹配数字字符类,我会得到意想不到的结果

无论我认为我尝试哪种组合方式,这种情况都会继续

有谁知道我做错了什么以及如何让 Character Classed 在 cygwin sed 中工作

更新

更新 2

0 投票
1 回答
565 浏览

regex - 在正则表达式中重用字符类

为了使正则表达式更简短,是否有一种简写方式来引用同一正则表达式中较早出现的字符类?

例子

有没有办法缩短以下内容:

[acegikmoqstz@#&].*[acegikmoqstz@#&].*[acegikmoqstz@#&]

0 投票
1 回答
107 浏览

python - python:字符类中的方形后退

我正在尝试在 python 中匹配方括号(使用字符类)。但是下面的代码不成功。有谁知道正确的方法是什么?

0 投票
2 回答
119 浏览

regex - `$unsafe_chars` arg 到 `HTML::Entities::encode_entities` 的默认正则表达式字符类是什么?

根据HTML::Entities文档,第二个参数是encode_entities

不安全字符是使用正则表达式字符类语法(您在正则表达式的括号中找到的)指定的。

要编码的默认字符集是控制字符、高位字符以及 <、&、>、' 和 " 字符。

但是,该页面没有提供默认集的等效参数的示例。我想对不安全的字符集进行细微调整,而不会倒退。

什么正则表达式字符类相当于«控制字符、高位字符以及我可以用作起点的 <、&、>、' 和 "»?

0 投票
2 回答
2364 浏览

regex - 为什么字符类比交替更快?

似乎使用字符类比在示例中的交替更快:
[abc]vs(a|b|c)
我听说它被推荐,并通过一个简单的测试使用Time::HiRes我验证了它(慢了大约 10 倍)。
在捕获括号产生影响的情况下使用(?:a|b|c)也不会改变结果。
但我不明白为什么。我认为这是因为回溯,但我在每个位置看到它的方式有 3 个字符比较,所以我不确定回溯如何影响交替。这是实施的交替性质的结果吗?