다음과 같은 사용자 입력이 발생합니다.로마 숫자 대체 문자열
"ix는 모두 viii가 로마 숫자입니다. mcmlxxxvii는 와우 년입니다. 년은 mmxvi입니다."
i/p에있는 모든 로마 숫자를 검색하고 대문자로 변환해야합니다. 그래서 xxx는 로마 숫자를 찾을 수 아래처럼 문자열 교체를 사용하고 싶습니다.
input.replaceAll("(?i)xxx","XXX");
현재 입력이 있는지 여부를 확인할 수 있습니다.
System.out.println(input.matches("^.*M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3}).*$"));
도와주세요.
(?!\bi+\b)\b[dcmlxvi]+\b|(\bi+\.)
을하고 이것에 의해 대체 :
는 사용하지 마십시오 앵커 ('^' 와'$')를 사용하여 텍스트 부분을 일치 시키려면 – Aaron
'replaceAll'은'appendReplacement'를 찾는데 도움이되지 않습니다. –
@ WiktorStribiżew 감사하지만 적절한 정규식이 필요합니다. –