我無法捕獲字符串中的值。 我有一個輸入,但它沒有任何格式,只是我們知道它與;
分開的特殊字符。捕獲具有多個特殊字符的正則表達式組
test?test; [email protected];name=vonnegut
我想分裂與給定的特殊字符此輸入,然後找到的結果,其中包括像=
另一個特殊字符。
對於這樣的結果:name=vonnegut
我無法捕獲字符串中的值。 我有一個輸入,但它沒有任何格式,只是我們知道它與;
分開的特殊字符。捕獲具有多個特殊字符的正則表達式組
test?test; [email protected];name=vonnegut
我想分裂與給定的特殊字符此輸入,然後找到的結果,其中包括像=
另一個特殊字符。
對於這樣的結果:name=vonnegut
你可以試試這個
[^;]+=[^;]+
[^;]+
是否定的字符類將匹配一系列字符(+
表示至少一個)不是分號(它也會匹配換行符,因此如果字符串中包含這些字符,請小心,那麼您需要將它們添加到類中[^;\r\n]
)
這是一個非常優雅的解決方案+不錯的鏈接。 – brimborium
看一看字符串的split()方法,它應該做的正是你想要的。
拆分「;」首先在結果字符串上輸入「=」。
實際上,我可以用split(「;」)方法做到這一點,然後搜索另一個charachter,但是要做到這一點非常重要。也許有一種方法來處理它與一個正則表達式。 –
String input = "test?test; [email protected];name=vonnegut";
String[] splittedInput = input.split(",");
for (String str:splittedInput) {
System.out.println(str);
}
給你
試驗測試
1231 @測試
名=馮內古特
現在可以測試每個單獨的字符串爲您的下一個字符,例如:?
for (String str:splittedInput) {
if (str.contains("=") {
System.out.println(str);
}
}
您也可以直接進行正則表達式搜索。我不得不看那一個(不要經常使用正則表達式),但你會很容易地弄清楚。有可能是已經包含正確的正則表達式的答案...;)
非常感謝,但我已經做到了。我在這個領域真的很新奇,想知道爲什麼你說:不要經常使用正則表達式?萬分感謝! –
然後我建議你在你的問題中聲明(這樣可以更好地幫助他人)。因爲你已經有了一個可以接受的答案,請給他一個upvote(左邊的'^',在綠色的接受選中標記上方)。你可以用這個獎勵他。 (在我看來,他贏得了它,因爲他的回答正是你正在尋找的。) – brimborium
我不經常使用正則表達式,因爲我沒有掌握語法。而且我沒有掌握語法,因爲我不經常使用它。這是一個懶惰的粘滯圈...;)正則表達式是一個奇妙的工具。我鼓勵你使用它(比我更頻繁:P)。 – brimborium
這些字符不是很「特殊」 – keyser
歡迎來到Stack Overflow!我們鼓勵你[研究你的問題](http://stackoverflow.com/questions/how-to-ask)。如果你已經[嘗試了某些東西](http://whathaveyoutried.com/),請將其添加到問題中 - 如果沒有,請先研究並嘗試您的問題,然後再回來。 – 2012-10-11 07:59:30