指定櫃檯我想創建正則表達式查找重複的逗號,喜歡這裏:正則表達式中的字符類
baz(uint32,,bool)
現在我的模式是:\w*\([\w\[\],?+]+\)
這是行不通的。
如何指定字符類中的項目的數量?
指定櫃檯我想創建正則表達式查找重複的逗號,喜歡這裏:正則表達式中的字符類
baz(uint32,,bool)
現在我的模式是:\w*\([\w\[\],?+]+\)
這是行不通的。
如何指定字符類中的項目的數量?
您不能指定字符類中的出現次數,因爲此構造用於定義特定的字符類型。在[...]
內,*
,+
,?
,{1,2}
被視爲文字符號。
如果您只是需要匹配括號內的數個逗號分隔的單詞,使用
\w*\(\w*(?:,\w*)*\)
或強制性的第一個字:
\w+\(\w*(?:,\w*)*\)
^
見regex demo(或this one)。
在Java中,使用String re = "\\w+\\(\\w*(?:,\\w*)*\\)";
。
圖案的詳細資料:
\w*
- 0+字字符\(
- 一個字面(
\w*
- 0+字字符(?:,\w*)*
- 零個或更多序列( (?:...)
和(...)
定義了序列或可選序列如果|
在組內使用)的逗號和0+字字符\)
- 字面)
(?:...) - 特定於Java?找不到任何文檔。 – Constantine
請參閱[什麼是非捕獲組?問號後跟冒號(?:)是什麼意思?](http://stackoverflow.com/questions/3512471/what-is-a-non-capturing-group-what-does-a-question-mark -followed逐一個冒號)。此外,[非捕獲組](http://www.regular-expressions.info/brackets.html#noncap)。它是NFA正則表達式(非POSIX之一)中被廣泛接受的構造。 –
'[,] {2,}'兩個或更多連續的逗號。請參見[Java RegEx Quantifiers](https://docs.oracle.com/javase/tutorial/essential/regex/quant.html)。 – nbrooks