0

「反復的な方法」で文字列を検証しようとしていますが、すべての試行が失敗します! 少し複雑だと思いますが、正しいやり方を教えていただけないでしょうか。ほとんどの人が正規表現パターンを使用するように提案すると思いますが、一般的に、無限の「セット」に対して正規表現を定義するにはどうすればよいでしょうか?

検証したい文字列は「ANYTHING|NUMBER_ONLY,ANYTHING|NUMBER_ONLY...」です

たとえば、「hello|5,word|10」と「hello|5,word|10」はどちらも有効です。

注: 文字列の末尾にカンマ「,」があってもなくてもかまいません。

4

2 に答える 2

1

文字列を|区切り文字で配列に分割することをお勧めします。そして、各部分を個別に検証します。各部分 (最初のものを除く) は、次のパターンに一致する必要があります\d+(,.*)?

更新しました

で分割し,、各部分を検証します.*|\d+

于 2012-04-17T07:00:03.050 に答える
1

Kleene star ( *) を使用すると、正規表現で「無限集合」を定義できます。次のパターンでうまくいくはずです:

[^,|]+\|\d+(,[^,|]+\|\d+)*,?
A----------B--------------C-

パート A は最初の要素に一致します。パート B は、後続の要素に一致します (星印に注意してください)。パート C は、末尾のオプションのコンマです。

警告: Java 文字列のバックスラッシュを忘れずにエスケープしてください。

于 2012-04-17T07:15:29.277 に答える