Регулярное совпадение до первого совпадения класса
Я собираюсь построить регулярное выражение, которое поможет мне определить первое вхождение матча.
Мой текущий регулярное выражение"(.*)[Cc][Aa][Ss][Ee][^a-zA-Z\\d]*(\\d\\d*)[^a-zA-Z\\d]*(.*)"
Я пытаюсь выяснить, содержит ли входная строка слово «case» (без учета регистра), затем любое количество специальных символов и число; Я хочу получить 3 части текста. Скажи, что моя входная строка"RE: FW: case:-1234: there is some description"
Используя это регулярное выражение, я могу получить,"RE: FW: "
, "1234"
, "there is some description"
.
Это нормально, но если моя строка ввода"RE: FW: case:-1234: This is in reference to case 789 reopening"
Тогда мое регулярное выражение возвращается,"RE: FW: case:-1234: This is in reference to"
, "789"
, "reopening"
.
То, что я хотел бы получить, это"RE: FW: "
, "1234"
, "This is in reference to case 789 reopening"
.
Я новичок в регулярных выражениях, поэтому любая помощь очень ценится.
Примечание: я работаю над Java-инструментом, так что Java-совместимое регулярное выражение было бы неплохо.