2013-03-06 3 views
3

나는이 9 $ 1F와 비슷한 문자열을 가지고 있으며 숫자로 시작하여 "$"기호 다음에 16 진수 값으로 끝나야하는지 확인해야합니다.

[0-9][\\$][0-9A-Fa-f] 

나는 이런 식으로 시도했지만 실패했습니다. 누구든지 제발 도와주세요. 절대적 숫자로 시작해야하는 경우

답변

2

,이 시도 :

^\\d\\$[0-9A-Fa-f]+ 
+0

감사합니다. 하지만 그것은 입력 문자열 "1 $ 04에 대한 숫자 형식 예외를 제공합니다. 예, 숫자로 시작해야하고"$ "다음에 16 진수 값으로 끝나야합니다. – mee

+0

이후에 어떤 작업을합니까? –

+0

일단 일치하면 "$"로 문자열을 분할해야합니다. 스택 들여 쓰기를 할 수 없으므로 몇 가지 들여 쓰기 문제가 있습니다. 내 게시물을 한 번 들여 쓰겠습니다. 들여 쓰기가 완료되었습니다. – mee

4

을 당신은 아마, 당신의 정규식이 첫 번째 진수를 일치 (정규식은 전체 입력 문자열과 일치해야 함) .matches()를 사용하는 손가락. 당신은 또한 \\$을 사용할 수 있습니다

[0-9][$][0-9A-Fa-f]+ 

대신 [$]

을보십시오.

+0

답장을 보내 주셔서 감사합니다.하지만 그것은 입력 문자열 "1 $ 04"에 대한 숫자 형식 예외를 제공합니다. – mee

0

정규식 일치를 수행하는 경우 문자열을 분할하는데도 사용할 수 있습니다. 다음 예제에서는 숫자와 16 진수 값을 두 개의 정수로 변환합니다. 9 255 (9FF)에서

final Pattern pattern = Pattern.compile("([0-9])\\$([0-9A-Fa-f]+)"); 

Matcher matcher = pattern.matcher("9$FF"); 
int digit = 0; 
int hex = 0; 

if (matcher.find()) { 
    digit = Integer.parseInt(matcher.group(1)); 
    hex = Integer.parseInt(matcher.group(2), 16); 
} 
System.out.println(digit + " " + hex); 

결과 응답에 대한