我在正確獲取我的正則表達式時遇到了困難。正則表達式來檢測包含重量的括號
我用這個鏈接,用於檢測重量: regex to get weight
這是術語,只找到了重量,這工作:
([\d.]+)\s+(lbs?|oz|g|kg)
我寫了一個Java的方法顏色的用量在html頁面上的藥物。如果它至少包含一個重量指示,它應該爲括號中的所有文字着色。 (例如低於18:5.5mg,高於18:10mg) 目前它有時會着色右邊的部分,但大多數時候正則表達式會忽略或忽略一個圓括號,應該着色。
當前問題:正則表達式還包含關閉括號後的每個單詞,直到行尾。
這裏我的當前正則表達式:。?
(\([^ \(] \ d \,\ d +)\ S +(微克|毫克| G |千克)*。 \)
這裏整個方法:
private static String addDosageHighlight(String htmltext) {
String dosage ="";
Pattern pattern = Pattern.compile("(\\(.[^\\(]*.\\d*\\,?\\d+)\\s?+(µg|mg|g|kg).*.\\)");
Matcher matcher = pattern.matcher(htmltext);
// Check all occurrences
if (matcher.find()) {
dosage = matcher.group();
htmltext = htmltext.replace(dosage, "<span style=\"color:magenta;\">" + dosage +"</span>");
}
return htmltext;
}
實例: 藥物b(未滿18 10克,在18:15 G)工作良好
藥物C(如果需要的話有時15克)可以幫助
(有時10克)
這些都得到檢測,但將顏色的所有文本,直到行末,括號之後。我無法設法得到一個不會被着色的應該是好的括號。
格式的代碼更好。什麼是'文本' – Falmarri
您沒有顯示任何想要捕獲的文本示例,以及哪些情況失敗,哪些成功。 – rrauenza
當希臘mu不可用時,通用的縮寫爲*** mcg ***。還有一些劑量在IU中。 –