Java регулярное выражение - замена выражения до границы слова - PullRequest
0 голосов
/ 19 марта 2020

Я хочу удалить слово «объект» до начала слова «дата». Например, для этого: blablaobjectthisisatestdateblabla

Я хочу это: blabladateblabla

Я пытался использовать это выражение для группы (.*)(object)(.*)(date)(.*) для замены на $1$4$5, но это не сработало, понимаете?

1 Ответ

0 голосов
/ 20 марта 2020

Если вы хотите удалить от object до date, но не включая date, то использовать однозначное утверждение можно одним из способов:

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Test
{

    public static void main(String[] args) {
        String s =  "blablaobjectthisisatestdateblabla";
        Pattern pattern = Pattern.compile("object[\\s\\S]*(?=date)");
        Matcher m = pattern.matcher(s);
        s = m.replaceAll("");
        System.out.println(s);
    }
}

Печать:

blabladateblabla

Регулярное выражение:

object      # matches object
[\s\S]*     # matches 0 or more whitespace or non-whitespace characters (. will not match the newline)
(?=date)    # until the next characters are 'date'

См. Демонстрационное выражение Regex

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