我正在尝试创建一个正则表达式,以匹配括号内的每个数值。
这里有一个regex101的链接,我一直在用它进行测试。
例如,使用字符串:
目前还没有批准的直接针对NRAS激活突变的治疗方法。N-Ras活化可预测Raf/MEK/ERK、PI3K/Akt等下游通路(23274911、22392911、21993244)的敏感性。MEK抑制剂曲美替尼和协比美替尼(与vemurafenib联合)已被FDA批准用于BRAFV600E和V600K突变型黑色素瘤,目前正在固体肿瘤和血液恶性肿瘤(22663011,25265494)的临床试验中进行研究。一些临床前研究表明,MEK抑制剂与其他下游分子抑制剂(如PI3K、eIF4A和Plk1 )的结合,在体外和体内均能协同抑制NRAS突变型黑色素瘤( (19492075) )。
我想匹配以粗体显示的每一个值。我目前正在使用以下内容
Pattern citationPattern = Pattern.compile("(.?\()(\\d+)");
Matcher match = citationPattern.matcher(treatmentApproach);并且能够站起来匹配括号内的每个第一个值。如何将其扩展到括号内有多个值的情况。例如(22663011,25265494)。谢谢你的帮忙!
发布于 2017-04-26 15:57:06
我只需要从文字(和)之间提取匹配。就像,
Pattern citationPattern = Pattern.compile("\\((.*?)\\)");
Matcher match = citationPattern.matcher(treatmentApproach);
while (match.find()) {
System.out.println(match.group());
}发布于 2017-04-26 16:03:13
我会使用这样的模式:[\(|, ](\d+)[, \)]
在这里看到它的作用:https://regex101.com/r/hoggh0/1
这可以在[open brackets or ", "]和[close brackets or ", "]之间找到任何数字。
如果文本中的数字介于注释之间,而不是放在括号之间,并且希望将它们排除在外,这将是唯一的解决办法。这将包括他们。
发布于 2017-04-26 16:00:46
"(\([0-9]+([, ]*[0-9])*\))"可能是你所需要的。至少它在这里起作用了:https://regex101.com/r/tkQP8z/5。
https://stackoverflow.com/questions/43639011
复制相似问题