问题标签 [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 投票
1 回答
2400 浏览

php - UTF-8 模式正则表达式中的非 ASCII 字符

问题

尽管 PHP 手册指出:

“在 UTF-8 模式下,值大于 128 的字符与任何 POSIX 字符类都不匹配。”

为什么波斯数字匹配\d[[:digit:]]处于“UTF-8 模式”?

细化

在一个不相关问题的回答者评论中提到,在正则表达式中,\d不仅匹配 ASCII 数字09而且还匹配波斯数字 ( ۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷)。

上面提到的问题被标记为但在 PHP 中也可以观察到该行为。考虑到这一点,我编写了以下“测试”:

结果数组$capture包含一个匹配项。5

使用u修饰符打开“UTF-8 模式”并运行:

导致在和$capture上都包含匹配项。۳5

笔记

  • 这个问题是指 PHP 5.6.22(最新的)
  • 这两个测试都是在明确使用C语言环境时执行的。
0 投票
1 回答
1731 浏览

java - 字符类中的java正则表达式双反斜杠

我需要在 Java 中执行以下正则表达式:

在每个逗号处拆分一个字符串,该字符串前面没有反斜杠(即转义),后跟零个或多个空格。

我一直在尝试这个:

这是 Perl 中的正确语法并在那里工作。在 Java 中并非如此。

以上在编译过程中已经抛出异常:

在字符类中添加第三个和第四个反斜杠没有帮助

在空白处添加第二个反斜杠允许它编译,

但随后出现运行regex.PatternSyntaxException时,说明unclosed character class

显然缺少一个反斜杠,我无法将其输入...谁能告诉我这应该如何在 Java 中完成?

谢谢!

0 投票
1 回答
221 浏览

perl - 为什么 [^\w] 匹配某些单词字符而不匹配 [^\p{Word}]?

我编写了一个 Perl 脚本,它打印出与 Unicode 属性匹配的字符。到目前为止,它似乎对大多数属性都有效。

但它会ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ ÿ在匹配的字符中打印出来[^\w]。这些字符应该更匹配\w。奇怪的是,他们匹配\p{Word}

我试过没有成功:

  • map { decode ( "UTF-8", $_ ) }
  • map { pack 'U0C*', unpack 'C*', $_ }

我怎样才能使[^\w]那些单词字符不匹配?

字符.pl

好的:

好的:

坏的:

Perl v5.14.2

0 投票
3 回答
1106 浏览

perl - How to match Unicode vowels?

What character class or Unicode property will match any Unicode vowel in Perl?

Wrong answer: [aeiouAEIOU]. (sermon here, item #24 in the laundry list)

perluniprops mentions vowels only for Hangul and Indic scripts.

Let's set aside the question what a vowel is. Yes, i may not be a vowel in some contexts. So, any character that can be a vowel will do.

0 投票
1 回答
193 浏览

regex - 与 Lua 模式匹配的确切 Ascii 代码

我正在将一个项目从 Lua 翻译成 C++。在 Lua 版本中,我使用 Lua 的正则表达式,但目的非常简单,以至于在 C++ 中我可以通过简单地将字符与一些 Ascii 代码进行比较来实现。

但是,要做到这一点,我需要每个字符类匹配的确切 ascii 代码。

例如,%s匹配所有空格字符,但这些字符到底是什么?我需要知道每个 Lua 字符类。

0 投票
2 回答
1113 浏览

java - 如何在 Java 正则表达式中表示一个空字符类

我想创建一个不匹配任何字符的字符类。现在,我一直在表示这样的模式:

甚至

有没有合适的方法来做到这一点?

注意:无需提供不涉及字符类的替代解决方案(负前瞻等)。我只是想知道是否有“正确”的方法来做到这一点。

更新:我正在实现一项功能,该功能首先向用户打印他输入的简化版本。由于我正在简化字符类,因此我当前的版本只会打印[]输入,例如[a&&b]. 如果我们[]再次解析,它会抛出一个错误,这不是我想要的。因此,这就是为什么我想知道是否有一种正确的方法来做到这一点,它不会通过向他展示类似的东西来改变用户输入^$

0 投票
1 回答
3438 浏览

java - 使用 RegEx 从 java 字符串中删除除 - 和 _ 之外的所有标点符号

我正在尝试使用我在此处找到的方法替换除 - 和 _ 之外的所有标点符号,但我只能使用发布的使用负前瞻的确切代码来让它工作:

我试过:

谢谢。

0 投票
2 回答
1057 浏览

c++ - isdigit() 不能在一个简单的程序中工作?

该代码没有显示错误,但每次我输入一个数字时,它都会显示“不是数字”。

0 投票
1 回答
226 浏览

regex - awk 版本 3.1.7 中的字符类范围

不像grep我不能在`awk.d'中定义数字字符类的大小/范围。任何正确方向的线索都值得赞赏。

grep我可以定义数字字符类的大小/长度

现在我想用 awk 来做这件事,但同样的正则表达式不起作用。

例如以下命令不提供任何输出。

我期待上面的命令打印

注意 1:目前我正在使用定义范围,但对于大范围来说并不好。

笔记2:

0 投票
3 回答
2135 浏览

awk - 正则表达式 "^[[:digit:]]$" 在 AWK/GAWK 中无法按预期工作

我在 RHEL 上的 GAWK 版本是:

如果它的第一个字段包含所有数字,我想打印一行(没有特殊字符,甚至要考虑空格)

这里出了什么问题?我的 AWK 版本不理解 GNU 字符类吗?请帮助