Как отрицать обратное выражение регулярного выражения - PullRequest
0 голосов
/ 11 октября 2011

Я использую регулярное выражение Java. У меня есть строка, как следует

String s = "the location is at {emp.address.street} with the name {emp.name},{emp.surname}";

Для приведенной выше строки, s.replaceAll( "\\{(.*?)\\}", "" ) возвращает следующую строку:

the location is at with the name ,

Теперь я хочу обратить это, чтобы получить следующий результат:

{emp.address.street}{emp.name}{emp.surname}

Ответы [ 2 ]

1 голос
/ 11 октября 2011

Этот проверенный скрипт работает для меня:

public class TEST
{
    public static void main( String[] args )
    {
        String s = "the location is at {emp.address.street} with the name {emp.name},{emp.surname}";
        String result = s.replaceAll( "[^{}]+|(\\{(.*?)\\})", "$1" );
        System.out.println(result);
    }
}
0 голосов
/ 11 октября 2011

Вы можете создать Pattern и использовать Matcher.find() и Matcher.group(), чтобы получить части этого шаблона. Вот Javadocs для классов: Matcher Javadoc Шаблон Javadoc

...