我在正确获取我的正则表达式时遇到了困难。正则表达式来检测包含重量的括号
我用这个链接,用于检测重量: 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中。 –