2013-10-08 2 views
-2

사람들은 전에이 질문을했지만 Ι는 해결책을 찾을 수 없습니다.정규식 일치 문자와 그 다음 숫자

나는 문자열이 다음 패턴과 일치하는지 확인하기 위해 노력하고있어 : 자본 여부를 문자 "X"다음 숫자 (어떤 점 또는 어떤 다른 사람을).

+0

죄송합니다. 제 영어가 좋지 않다면 이해해주십시오. – Gigalala

+2

설명을 사용할 수있는 유일한 것은 "모든 숫자"입니다. 'x542'가 유효합니까? 또는'x5 '와 같은 단 하나의 자릿수? – Cruncher

답변

1

정규식은 [xX]\d입니다. 대괄호 안의 내용은 일치시키려는 문자의 목록입니다. 그것을 성취 할 수 있도록 대문자 "X"로 대문자를 찾으려고합니다. 그런 다음 임의의 숫자를 일치 시키려고합니다. 그것은 \ d가하는 일입니다. \ d는 "임의의 숫자"를 의미합니다. 자바 코드에서 이것을 실행하는 방법은 다음과 같습니다.

package com.sandbox; 

public class Sandbox { 

    public static void main(String[] args) { 
     String s = "x9"; 
     System.out.println(s.matches("[xX]\\d")); 
    } 
} 

문자열에 두 개의 백 슬래시가 있습니다. \은 이스케이프 문자이기 때문입니다. 자바에서는 실제로 \ 기호를 사용하고 싶으므로 \\을 입력하여 \ 기호를 이스케이프 처리해야합니다.

+0

하지만이 정규식은 "x34g"가 작동하지 않도록합니까? – Gigalala

+0

@Gigalala 예. 's'을 "x34g"로 변경하면 효과가 없다는 것을 알 수 있습니다. –

0

나는 당신의 요구 사항을 이해한다면 :

(x|X)[0-9]+ 

이 첫 번째 일치 "X"또는 "X"중 (| 또는). 그런 다음 분명히 숫자 인 그룹 [0-9]의 1 개 이상의 문자와 일치합니다.

2

당신은 가능성이

[xX]\d 

문자열 리터럴에서 백 슬래시를 이스케이프 처리해야합니다 ("[xX]\\d"). 본 정규식 사용

1

:

"(?i)^x\\d+$" 
  1. (?i) 1 이상의 숫자 [0-9]
일치위한 개발 + \ X 또는 X
  • 맞게 일치하는 경우를 무시위한