Получение разделителей в сопоставлении с образцом Java - PullRequest
1 голос
/ 30 января 2012

Учитывая шаблон, мы можем разрезать строку S на несколько частей с помощью S.split(pattern).Тем не менее, результат не то, что я хочу.Я хочу те строки, которые соответствуют шаблону, то есть разделители.Моя идея состоит в том, чтобы использовать результат разделения, чтобы сформировать новый шаблон, а затем снова разделить, но для этого нужно учитывать множество случаев для различных метасимволов.Любой простой способ?

Ответы [ 2 ]

3 голосов
/ 30 января 2012

Посмотрите на регулярное выражение Java:

http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

2 голосов
/ 30 января 2012

Вы не можете просто запустить несколько сплитов или вы можете получить неверный результат.Я бы, наверное, использовал s.split (pattern, 2) ...

public static Vector<String> getDelims( String s, String pattern )
{
    String[] items = s.split( pattern, 2 );
    if( items.length == 1 ) return new Vector<String>();
    String delim = s.substring( items[0].length());
    delim = delim.substring(0, delim.length() - items[1].length() );      
    Vector<String> ret = getDelims(items[1], pattern);
    ret.add(0, delim);
    return ret;
}
...