這聽起來像你所要求的,需要一個正則表達式作爲參數,並返回一組可以匹配在給定的偏移量字符串中的字符待匹配功能:
Set<Character> getSymbols(String regEx, int offset);
這是非平凡的。使用
你的例子:
getSymbols("[az]\\:[A-Z]*", 1)
應該返回[ 'A', 'Z'],
getSymbols("[az]\\:[A-Z]*", 2)
應該返回[ ':'],
getSymbols("[az]\\:[A-Z]*", 3)
應返回['A','B','C',.....'Y','Z']
但這是一個簡單的輸入。如果輸入的是:
getSymbols("[abc]*FRED[xzy]*", 5)
現在你有一個事實是,任何數量的「ABC」的字符可以進行FRED,並會轉移一切,導致設置這樣的結果因素:
1: ['a', 'b', 'c', 'F']
2: ['a', 'b', 'c', 'F', 'R']
3: ['a', 'b', 'c', 'F', 'R', 'E']
4: ['a', 'b', 'c', 'F', 'R', 'E', 'D']
5: ['a', 'b', 'c', 'x', 'y', 'z', 'F', 'R', 'E', 'D']
解決這個問題的代碼必須解析正則表達式,這些正則表達式對所有轉義字符(\ w for whitespace等等)有很強的表達力,然後需要一個遞歸算法來構建輸出集。
如果這是你的意圖,接下來的問題是,「你真的想要解決什麼問題?」
什麼是功能要求?你的問題並不完全清楚。你想不區分大小寫的匹配嗎? – BalusC
什麼是功能要求?什麼功能?你想不區分大小寫的匹配嗎?是的 – itun
即使是一些想要的輸入和輸出的例子可能會幫助我們把它拼湊在一起。 :-) – corsiKa