Как прекратить соответствие регулярных выражений в Java? - PullRequest
0 голосов
/ 01 апреля 2012

С учетом строки:

hello"this is a test"this is another test"etc

Как я могу написать регулярное выражение, которое выбирает что-либо до ", а затем перейти к следующему совпадению? Итак, в конце я получаю следующие совпадения:

hello
this is a test
this is another test
etc

Ответы [ 2 ]

3 голосов
/ 01 апреля 2012

Используйте метод String «split» с «в качестве разделителя».

http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#split(java.lang.String)

Edit:

String s = "hello\"this is a test\"this is another test\"etc";
String matches[] = s.split("\"");
for (String str : matches) System.out.println(str);

дает

hello
this is a test
this is another test
etc
2 голосов
/ 01 апреля 2012

Возможно, вы ищете что-то вроде [^"]+

, повторите один или несколько раз, любой символ, который не является "

, например:

String s = "hello\"this is a test\"this is another test\"etc";
Matcher matcher = Pattern.compile("[^\"]+").matcher(s);
while (matcher.find()) {
    System.out.println(s.substring(matcher.start(),matcher.end()));
}

будет производить:

hello
this is a test
this is another test
etc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...