Поскольку это не довольно HTML и любой синтаксический анализатор XML/HTML не могли помочь вам с regex. Кажется, что вы хотите, чтобы найти текст в виде
?drug <someData> ?disease
Для описания такого текста регулярного выражения вам нужно, чтобы избежать ?
(это один из регулярных выражений специальных символов, представляющих optional - ноль или один раз - квантор), так что вам нужно место \
перед этим (которое в String должно быть записано как "\\"
).
Кроме того, часть <someData>
можно записать в виде, как <[^>]>
, что означает,
<
,
- один или более не
>
после него,
- и, наконец,
>
Так регулярное выражение, чтобы соответствовать ?drug <someData> ?disease
может быть записано как
"\\?drug <[^>]+> \\?disease"
Но так как мы заинтересованы только в части <[^>]+>
представляя <someData>
мы должны позволить регулярное выражение group основано бороться. Короче, если мы окружим некоторую часть регулярного выражения круглыми скобками, то строка, подобранная этой частью регулярного выражения, будет помещена во что-то, что мы называем группой, поэтому мы сможем получить часть из этой группы. В коротком заключительном регулярное выражение может выглядеть
"\\?drug (<[^>]+>) \\?disease"
^^^^^^^^^---first group,
и может быть использован как
String a = "?drug <http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugbank/possibleDiseaseTarget> ?disease .";
String b = "?drug <http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugbank/molecularWeightAverage> ?weight . ?drug <http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugbank/possibleDiseaseTarget> ?disease";
Pattern p = Pattern.compile("\\?drug (<[^>]+>) \\?disease");
Matcher m = p.matcher(a);
while (m.find()) {
System.out.println(m.group(1));
}
System.out.println("-----------");
m = p.matcher(b);
while (m.find()) {
System.out.println(m.group(1));
}
, который будет производить в качестве выходного
<http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugbank/possibleDiseaseTarget>
-----------
<http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugbank/possibleDiseaseTarget>
Почему вы конкретно нужно регулярное выражение, когда 'contains' существует? – Dici
он вообще не работает :( –
Можем ли мы увидеть, что [вы сделали до сих пор, чтобы решить эту проблему] (http://mattgemmell.com/what-have-you-tried/)? – Pshemo