regexp在字符类中指定计数器

Con*_*ine 5 java regex

我正在尝试创建regexp以查找重复的逗号,如下所示:

baz(uint32,,bool)
Run Code Online (Sandbox Code Playgroud)

现在我的模式是: \w*\([\w\[\],?+]+\)

这是行不通的.

如何指定字符类中项目的数量?

Wik*_*żew 2

您无法指定字符类中出现的次数,因为此构造用于定义特定的字符类型。在 内部[...]*, +, ?,{1,2}被视为文字符号。

如果您需要匹配括号内的几个逗号分隔的单词,请使用

\w*\(\w*(?:,\w*)*\)
Run Code Online (Sandbox Code Playgroud)

或带有强制性的第一个词:

\w+\(\w*(?:,\w*)*\)
  ^
Run Code Online (Sandbox Code Playgroud)

请参阅正则表达式演示(或这个)。

在 Java 中,使用String re = "\\w+\\(\\w*(?:,\\w*)*\\)";.

图案详情

  • \w* - 0+ 个单词字符
  • \(- 一个字面意思(
  • \w*- 0+ 个单词字符
  • (?:,\w*)*- 零个或多个逗号序列和 0+ 个单词字符的序列(如果在组内使用,(?:...)(...)定义序列或替代序列)|
  • \)- 字面意思)