2017-06-29 4 views
0

xpathの "/"を見つけて特定の要素のxpathをより小さな部分に分割する簡単なガジェットを作成しています。分割方法。次のように私のコードは次のとおりです。正規表現と制限付きのString.splitは予期された動作をしていません

String test = "/html[1]/body[1]/div[1]/div[7]/div[3]/form[1]/div[1]/div[1]/div[1]/div[2]/div[1]/div[2]/a[1]"; 
String[] split = test.split("/"); 
for (int i = 0; i < split.length; i++) { 
    System.out.println(split[i]); 
} 

それは働いた、と私は結果だ:

html[1] 
body[1] 
div[1] 
div[7] 
div[3] 
form[1] 
div[1] 
div[1] 
div[1] 
div[2] 
div[1] 
div[2] 
a[1] 

をしかし、その後、私は "私が最初で区切られた2個にXPathを分割したいことを決めました/ "をxpathに入れます。それが動作し、その結果を与えていない

String test = "/html[1]/body[1]/div[1]/div[7]/div[3]/form[1]/div[1]/div[1]/div[1]/div[2]/div[1]/div[2]/a[1]"; 
String[] split = test.split("/",2); 
for (int i = 0; i < split.length; i++) { 
    System.out.println(split[i]); 
} 

:私は、私は私のコードを変更し、正規表現と制限してsplitメソッドを使用者のコメント-182をメッリする

html[1]/body[1]/div[1]/div[7]/div[3]/form[1]/div[1]/div[1]/div[1]/div[2]/div[1]/div[2]/a[1] 

おかげで、実際には文字列を空の文字列と元の文字列に分割していることに気付きましたが、これは私が期待したものではありません。正しく動作させる方法はありますか?

ありがとうございました!

+0

使用 '"。これはうまくいきました:https://stackoverflow.com/questions/40038575/how-to-match-the-forward-slash-using-regex – AntonH

+0

これは機能しましたが、分割された最初の文字列は ""(空)です。 –

+0

私はあなたの質問を誤って読んでいたので、私のコメントは無視してください。謝罪いたします。 – AntonH

答えて

0

分割がうまくいきます。 1つの空行が印刷されている必要があります。
test文字列の最初の文字は '/'で、これを「」と「html ...」に分割します。
split("/", 3)を試してみて、それが与える必要があります ""、 "htmlの[1]" と "\\ /" `代わりに正規表現で体[1] ..... "

+0

アドバイスありがとうございます –

0

スプリット機能がうまく動作し、結果は何もありませんbeacause(分割さ文字列がTHYE後者の場合には2つです、最初は空の文字列であることを考慮してくださいespectedとSplit Documentation

に述べています前の "/")、2番目の文字列は共有したものです。

+0

ありがとうございました。正規表現を変更して正しく動作させる方法はありますか? –

関連する問題