Я пытаюсь использовать классы Pattern и Matcher для извлечения совпадений из строки.
Моя строка выглядит следующим образом: $ abc $ 12def $ def $$ 11 $
Я хочу получить $ abc $, $ def $ и $ 11 $ из этой строки.
Я подумал об использовании следующего регулярного выражения: \ $ (. *) \ $ (Это нормально работает при обычном сопоставлении с образцом).
Моя Java-программа не может получить их. Все, что возвращает мне, это вся строка. Вот моя программа:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public final class dollar {
private static String REGEX = "\\$(.*)\\$";
private static String INPUT = "$12f$$555$button button$abc0$";
public static void main(String[] args) {
Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(INPUT); // get a matcher object
boolean found = m.find();
while (found) {
System.out.println("TEST:" + m.start());
System.out.println("TEST:" + m.end());
found = m.find();
}
}
}
Я также попробовал следующее:
m.matches()
m.groupCount()
m.group(1)
m.group(2)
Но это тоже не работает. Как это сделать? Это можно сделать на jdk6 или что-то доступно в jdk7?
Ценю всю помощь !!!