Java の正規表現に問題があります。正規表現をテストしたところ、うまく一致しているように見えますが、グループの 1 つが空の値を返しています。グループの正しい数を見つけることはできますが、2 番目のシーケンスが間違ったインデックスで開始および終了するように見える理由がわかりません。
パターン:
^http\://[\w\-\.]+\.[a-zA-Z]{2}/[\w]{2}/[\w\-]+/(uvw_)+([a-zA-Z0-9]?)+([\w\-]*)$
テストするデータ:
http://www.testing.ca/en/ABC-DEF/uvw_XY5114_2-Z_1_54321
探している:XY5114
regexplanet のスクリーンショットは次のとおりです。
編集:次のパターンを使用して、これを機能させました。
^http\://[\w\-\.]+\.[a-zA-Z]{2}/[\w]{2}/[\w\-]+/(uvw_)+([a-zA-Z0-9]*)([\w\-]*)$
そして別のオプションが提案されました:
^http\://[\w\-\.]+\.[a-zA-Z]{2}/[\w]{2}/[\w\-]+/(uvw_)+([a-zA-Z0-9]+)([\w\-]*)$