주어진 패턴과 일치하는 문자열의 텍스트를 바꾸길 원합니다. 나는 그것을하기 위해 자바 코드 아래에 썼다.replaceAll 정규식에서 b 사용
public static void main(String[] args) {
/* Block 1 */
String s1="123 Test Testing";
System.out.println(s1.replaceAll("\\bTest\\b", "<Replaced with Test Message>")); // Prints 123 <Replaced with Test Message> Testing
/* Block 2 */
String s2="123 Test] Test]ing";
System.out.println(s2.replaceAll("\\bTest\\]\\b", "<Replaced with Test Message>")); //Prints 123 Test] <Replaced with Test Message>ing
}
첫 번째 블록이 예상대로 작동합니다. 그러나 두 번째 블록에서 Test]
을 문자열의 시작 부분에 바꾸는 대신 Test]ing
부분을 바꿉니다.
코드 또는 정규식에 문제가 있습니까? 당신은 그것을 잘 작동보다 두 번째 블록에서 정규식을 제거해야 Test]
대신
모든 올바른 (귀하의 regexps 전혀 문제가 없다, 그들은 예상대로 작동). 나는 당신이''(?
@ WiktorStribiżew 코드를 업데이트했습니다. 이 코드를 사용하면 솔루션에 오류가 발생합니다. –
"실패"란 무엇을 의미합니까? 제 제안은 완벽하게 작동합니다 - https://regex101.com/r/w1wXqd/1 –