我正在尝试创建regexp以查找重复的逗号,如下所示:
baz(uint32,,bool)
Run Code Online (Sandbox Code Playgroud)
现在我的模式是: \w*\([\w\[\],?+]+\)
这是行不通的.
如何指定字符类中项目的数量?
您无法指定字符类中出现的次数,因为此构造用于定义特定的字符类型。在 内部[...],*, +, ?,{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+ 个单词字符的序列(如果在组内使用,(?:...)则(...)定义序列或替代序列)|\)- 字面意思)