이것은 어리석은 질문 일 수 있지만 어디에서도 찾을 수 없습니다.
괄호없이 Java OR 정규식 연산자 (|)를 어떻게 사용할 수 있습니까?
예 : Tel | Phone | Fax
답변
파이프를 자체적으로 사용할 수 있습니다.
"string1|string2"
예를 들면 :
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));
산출:
blah, blah, string3
괄호를 사용하는 주된 이유는 대안의 범위를 제한하는 것입니다.
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(1|2)", "blah"));
동일한 출력이 있습니다. 하지만 이렇게하면 :
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));
당신은 얻는다 :
blah, stringblah, string3
“문자열 1″또는 “2”라고 말 하셨기 때문입니다.
표현식의 해당 부분을 캡처하지 않으려면 다음을 사용하십시오 ?:
.
String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));