자바

2012-11-30 1 views
1

이 정규식을 적용 나는이 멋진 정규식을 쓴 나는이를 구현 할 수 있었다 : 펄자바

s/(?:[aeiou\u00E4\u00E4\u00F6\u00D6\u00FC\u00DC])h//ig 

그러나 내 자바 코드에 적용하는 지연에 의한 것으로 보인다. 나는 다음을 시도했다 :

bar.replaceAll("?:[aeiou\u00E4\u00E4\u00F6\u00D6\u00FC\u00DC])h", "");

하지만 난 뭔가 특별한 부족한 것 같다.

내 질문은 분명합니다.이 정규식을 Java의 문자열에 어떻게 적용합니까?

+3

어떻게 당신이 그것을 적용 할 수 있습니까? 무슨 끈에? 무엇을 추출 하시겠습니까? –

+0

슬래시를 벗어나야합니까? – AHungerArtist

+0

문자열 (예 : fahst)이 있는데 a 뒤에 h를 추출하려고합니다. 일반적으로 모음이나 독일어 움라우트 (이 정규 표현식에서 유니 코드 문자로 표시) 다음에 정확히 1 시간 바꿔야합니다. 그래서 "fahst"는 "fast"로 대체되어야하지만 "fahhst"는 "fahst"로 대체되어야합니다. – user1867234

답변

5

자바 문자열에서 백 슬래시를 두 배로하는 것을 잊지 마세요 :

bar.replaceAll("(?i)[aeiou\\u00E4\\u00E4\\u00F6\\u00D6\\u00FC\\u00DC]h", ""); 

시작에서 (?i)/i 케이스 - 무감각 수정을 대체합니다. 당신이 모음을 유지 만 h을 제거하려면

는 사용하십시오 lookbehind assertion :

bar.replaceAll("(?i)(?<=[aeiou\\u00E4\\u00E4\\u00F6\\u00D6\\u00FC\\u00DC])h", ""); 
+0

이것이 맞습니다, 어떻게하면 정규식에서 실수를 한 것으로 보입니다 :/ 지시 사항으로 이전에 언급 한 것을 실수로 보았습니까? – user1867234

+0

쉽다. 캡쳐되지 않은 그룹을 lookbehind 단정으로 변경하면된다. –

+0

저를 도와 주실 수 있습니까? 나는 정규식에 아주 새로운 – user1867234