有人知道提示在Java或Python中複製\ K功能嗎?在Java或Python中複製 K功能?
假設你有這樣的字符串:數字和字母的混合,然後在最後一個數字之後,一些字母。我們只想匹配這裏的最後幾個字母「五」。這只是解釋我希望做的功能的例子。
01a01d1101five
在PHP Perl的紅寶石你\ K優可以做
^[\w]*\d\K[a-z]+$
僅 「十一五」 匹配這是偉大的。
在C#中,你可以有可變寬度的回顧後
(?<=^[\w]*\d)[a-z]+$
僅「十一五」匹配這是偉大的。
在Java中,這是我試過的。
如果我知道分鐘和字符串的最大寬度後面我可以做
(?<=^[\w]{3,9}\d)[a-z]+$
,僅「十一五」匹配。
其實我也不知道寬度,使我對Java或Python唯一的想法是
^[\w]*\d([a-z]+$)
這整個字符串匹配和組#1捕捉「十二五」。所以我不知道在整場比賽/小組#0中與「五」匹配的提示。你是否有一個?
除了使用捕獲組,沒有別的辦法,但是你可以使用新的Python正則表達式模塊,它允許可變長度的向後看:https://pypi.python.org/pypi/regex。一種可能的方法是使用拆分方法,以避免使用分隔符或替換方法。 –
如果大小有限,Java允許變長lookbehind:'(?<=^\ w {0,1000} \ d)[az] + $' –
關於Ruby,請注意'\ K'功能只出現在版本2 –