我想擴展現有的正則表達式的字符串:擴展的正則表達式用邏輯與在非捕獲組
((?:street)|(?:addr)|(?:straße)|(?:strasse)|(?:adr))
它基本上匹配像街道或地址字符串。 所以現在我想補充一點,如果字符串的addressAdd或者streetnr存在,它就不會匹配任何東西(甚至不是街道)。
我試過 ((?:street)|(?:addr)|(?:straße)|(?:strasse)|(?:adr))(^(?:addressAdd))(^(?:streetnr))
然而它的幾個變化沒有成功。你們中有人知道如何否定字符串嗎?
更新:一些澄清:如果字符串像addressAdd
存在,我不希望任何字符串匹配。造成這種情況的Java代碼應該是這樣的:
String toCheck="some string to match";
if((!toCheck.equals("streetnr") && !toCheck.equals("addressAdd")) && (toCheck.equals("street") || toCheck.equals("strasse") || toCheck.equals("adr"))
什麼是所有那些非捕獲組進行? – Biffen
用'\ bstreet \ b'替換'(?:street)',如果需要的話,同樣爲所有子字符串添加'\ b'。 –