사람들은 전에이 질문을했지만 Ι는 해결책을 찾을 수 없습니다.정규식 일치 문자와 그 다음 숫자
나는 문자열이 다음 패턴과 일치하는지 확인하기 위해 노력하고있어 : 자본 여부를 문자 "X"다음 숫자 (어떤 점 또는 어떤 다른 사람을).
사람들은 전에이 질문을했지만 Ι는 해결책을 찾을 수 없습니다.정규식 일치 문자와 그 다음 숫자
나는 문자열이 다음 패턴과 일치하는지 확인하기 위해 노력하고있어 : 자본 여부를 문자 "X"다음 숫자 (어떤 점 또는 어떤 다른 사람을).
정규식은 [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"));
}
}
문자열에 두 개의 백 슬래시가 있습니다. \
은 이스케이프 문자이기 때문입니다. 자바에서는 실제로 \
기호를 사용하고 싶으므로 \\
을 입력하여 \
기호를 이스케이프 처리해야합니다.
하지만이 정규식은 "x34g"가 작동하지 않도록합니까? – Gigalala
@Gigalala 예. 's'을 "x34g"로 변경하면 효과가 없다는 것을 알 수 있습니다. –
나는 당신의 요구 사항을 이해한다면 :
(x|X)[0-9]+
이 첫 번째 일치 "X"또는 "X"중 (| 또는). 그런 다음 분명히 숫자 인 그룹 [0-9]의 1 개 이상의 문자와 일치합니다.
당신은 가능성이
[xX]\d
[xX]
이 x
또는 X
중 하나와 일치하는 character class입니다합니다.\d
은 임의의 숫자와 일치하는 pre-defined character class입니다.문자열 리터럴에서 백 슬래시를 이스케이프 처리해야합니다 ("[xX]\\d"
). 본 정규식 사용
:
"(?i)^x\\d+$"
(?i)
1 이상의 숫자 [0-9]
죄송합니다. 제 영어가 좋지 않다면 이해해주십시오. – Gigalala
설명을 사용할 수있는 유일한 것은 "모든 숫자"입니다. 'x542'가 유효합니까? 또는'x5 '와 같은 단 하나의 자릿수? – Cruncher