所以我myString
其中包含字符串簡單的Java正則表達式匹配和替換
"border-bottom: solid 1px #ccc;width:8px;background:#bc0b43;float:left;height:12px"
我想用正則表達式來檢查它包含"width:8px" (\bwidth\s*:\s*(\d+)px)
如果爲真,增加寬度值(即8上面的例子)my myList。
嘗試:
if (myString.contains("\\bwidth\\s*:\\s*(\\d+)px")) {
myList.add(valueofwidth) //unsure how to select the width value using regex
}
任何幫助嗎?
編輯:所以我看着contains
方法,發現它不允許正則表達式。 matches
將允許正則表達式,但它會尋找一個完整的匹配。
謝謝。你能告訴我更多關於'matcher.group(1)'嗎?我相信他們被稱爲捕獲組? – meiryo
你不需要*使用'matcher.find()'。你可以*使用它,如果你喜歡寫繁瑣的代碼。 – Bohemian
是的,你是對的。 '(\\ d +)'被稱爲捕獲組。捕獲的組按照開頭括號的順序編號。因此,由於((\\ d +)'具有第一個開頭括號,所以它是第一個捕獲組。並且要使用'Matcher#group'方法獲取在一個組中捕獲的值,並將組編號作爲參數。 –