В следующем коде у меня есть небольшой набор данных; даты и цены. Тем не менее, я хочу просто показать цены:Java regex за исключением некоторых символов
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest {
public static void main(String[] args){
String[] data = new String[4];
data[0]="Dec 10, 2015";
data[1]="116.04";
data[2]="Dec 9, 2015";
data[3]="46,361,357";
for (int i=0; i<data.length; i++){
String qq = "\\d+.[^\\s]\\d*.\\d+";
Pattern p2 = Pattern.compile(qq);
Matcher m2 = p2.matcher(data[i]);
while(m2.find()){
System.out.println(m2.group());
}
}
}
}
Результат:
10, 2015
116.04
46,361,357
Как вы можете видеть, это не показывает Dec 9
чего я хочу, но выводящее Dec 10
. Может ли кто-нибудь помочь мне решить эту проблему? Обратите внимание, что мне не разрешено использовать какую-либо библиотеку в этой работе. Это только работа с регулярным выражением.
Примечание: Для того, чтобы соответствовать '.' буквально, что вам нужно, чтобы избежать его в противном случае это будет соответствовать любому символу, который не является новой строки – Tushar
«Тем не менее, я хочу только объяснить цены:»Что это означает ? «regex исключает пробелы, которые есть после, в датах« о, я думал, что мы говорим о ценах? «Это отлично работает с 9 декабря», что отлично работает? – Aaron
@Aaron Я хочу показывать только цены. Регулярное выражение отображает цены, но также отображает '10,2015', которые не должны отображаться. Мой вопрос, как я могу изменить регулярное выражение так, чтобы оно не было датами? – Nasser