죽은 말을 이겨서 미안하지만 아무도 이것을 지적하지 않았다는 것은 좀 이상합니다. "예, 할 수 있습니다.하지만 이것은 실제 생활에서 캡처 그룹을 사용하는 방법과 반대입니다."
Regex를 원래 사용되는 방식으로 사용하는 경우 솔루션은 다음과 같이 간단합니다.
"6 example input 4".replaceAll("(?:\\d)(.*)(?:\\d)", "number$11");
또는 아래 shmosel이 올바르게 지적했듯이,
"6 example input 4".replaceAll("\d(.*)\d", "number$11");
... 정규식에서 소수를 그룹화 할 이유가 전혀 없기 때문입니다.
일반적으로 삭제 하려는 문자열 부분에 캡처 그룹을 사용하지 않고 유지 하려는 문자열 부분에 사용합니다 .
정말로 바꾸고 싶은 그룹을 원한다면 템플릿 엔진 (예 : moustache, ejs, StringTemplate, ...)을 원할 것입니다.
호기심을 제외하고, 정규식 엔진이 가변 텍스트를 인식하고 건너 뛰기 위해 필요로하는 경우 정규식에서 캡처하지 않는 그룹도 있습니다. 예를 들어
(?:abc)*(capture me)(?:bcd)*
입력이 "abcabc capture me bcdbcd"또는 "abc capture me bcd"또는 "capture me" .
또는 반대로 말하면 텍스트가 항상 동일하고 캡처하지 않으면 그룹을 사용할 이유가 전혀 없습니다.