簡単な要件があります。Hibernate 検証エンジンを使用して、制約が true か false かを判断します。
すべての単語が大文字で始まる場合、True はテキストでなければなりません。いくつかの困難があります:
言葉は次のようにも始まります
8-テスト あるいは 8テスト あるいは (テスト) あるいは -テスト または同等のものまた、通常はコンマで区切られています (または別の区切り文字):
テスト、テスト、テストString 内の単語が大文字で始まることを確認したいだけであることを思い出してください。私の試みを見ると、おそらく私は物事を複雑にしすぎています。
以下にいくつかのサンプルを示します: すべて一致すると予想される (true):
- ヒドロキシイソヘキシル 3-シクロヘキセン カルボキシアルデヒド、ベンジル - テスト、テスト、テスト - CI 15510、メチルクロロイソチアゾリノン、EDTA二ナトリウム - なし - なしすべて一致しないと予想される (false):
- ヒドロキシイソヘキシル 3-シクロヘキセン カルボキシアルデヒド、ベンジル - テスト、テスト、テスト - CI 15510、メチルクロロイソチアゾリノン、eDTA二ナトリウム -な - なし私の試みはこの方向に向かっていました:
final String oldregex = "([\\W]*\\b[A-Z\\d]\\w+\\b[\\W]*)+";
final String regex = "([A-Z][\\d\\w]+( [A-Z][-\\d\\w]+)*, )*[A-Z][-\\d\\w]+( [A-Z][-\\d\\w]+)*\\.";'
実際に「oldregex」オプションを使用すると、一部のテキストで不定計算に遭遇しました これを使用して正規表現をテストします: http://gskinner.com/RegExr/ (もちろん二重バックスラッシュなし)
助けてくれてありがとう!!!