1

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\-]*)$
4

2 に答える 2

0

URL の最後のセクションを抽出し、アンダースコアで分割したいというのは正しいですか? この場合、次の手順を実行します。

String url = ....;
int lastSlash = url.lastIndexOf('/');
String[] parts = url.substring(lastSlash + 1).split("_");
于 2013-07-16T14:03:58.220 に答える