Programing

정규식에서“모든 문자”를 일치시키는 방법?

lottogame 2020. 4. 3. 08:10
반응형

정규식에서“모든 문자”를 일치시키는 방법?


다음이 일치해야합니다.

AAA123
ABCDEFGH123
XXXX123

내가 할 수있는 일 : ".*123"?


그래 넌 할수있어. 작동합니다.

  • . = 어떤 문자
  • \. = 실제 도트 문자
  • .?= .{0,1}= 모든 문자를 0 번 또는 1 번 일치
  • .*= .{0,}= 모든 문자를 0 번 이상 일치
  • .+= .{1,}= 모든 문자를 한 번 이상 일치

예, 작동하지만 표현식을 컴파일 할 때 DOTALL 플래그 .를 전달하지 않으면 줄 바꿈과 일치하지 않습니다 .

Pattern pattern = Pattern.compile(".*123", Pattern.DOTALL);
Matcher matcher = pattern.matcher(inputStr);
boolean matchFound = matcher.matches();

패턴 .사용하여 임의의 문자를 한 번 일치 시키고 , .*임의의 문자를 0 번 이상 .+일치시키고 , 임의의 문자를 1 회 이상 일치 시키십시오.


정교한 정규식 테스트 및 개발 도구가 많이 있지만 Java로 간단한 테스트 하네스를 원한다면 다음과 같이 사용할 수 있습니다.

    String[] tests = {
        "AAA123",
        "ABCDEFGH123",
        "XXXX123",
        "XYZ123ABC",
        "123123",
        "X123",
        "123",
    };
    for (String test : tests) {
        System.out.println(test + " " +test.matches(".+123"));
    }

이제 새로운 테스트 케이스를 쉽게 추가하고 새로운 패턴을 시도 할 수 있습니다. 정규식을 탐험하는 재미를 즐기십시오.

또한보십시오


아니요, *0 개 이상의 문자와 일치합니다. +대신 하나 이상을 일치시키는을 사용해야 합니다.

이 표현은 당신에게 더 효과적 일 수 있습니다 : [A-Z]+123


예제 문제에 대한 구체적인 해결책 :-

시도 [A-Z]*123$일치합니다 123, AAA123, ASDFRRF123. 123사용 하기 전에 적어도 문자가 필요한 경우 [A-Z]+123$.

질문에 대한 일반적인 해결책 (정규 표현식에서 "모든 문자"를 일치시키는 방법) :

  1. 공백을 포함한 것을 찾고 있다면 시도해 볼 수 있습니다 [\w|\W]{min_char_to_match,}.
  2. 공백 이외의 것을 일치 시키려고 시도하면 시도 할 수 있습니다 [\S]{min_char_to_match,}.

내가 이것을 인코딩하는 가장 일반적인 방법은 멤버가 가능한 모든 문자 세트의 파티션을 형성하는 문자 클래스를 사용하는 것입니다.

보통 사람들이 쓰기와 [\s\S]생각 (공백 또는 공백이 아닌), [\w\W], [\d\D], 등 모든 작업을 할 것이다.


정규식을 사용해보십시오. {3,}. 이것은 모든 문자가 새로운 줄을 기대하는 것과 일치합니다.


나는 이것을 작동한다 항상 점은 모든 문자를 의미하지 않는다. 단일 회선 모드 인 경우 예외입니다. \ p {all}은

 `String value="|°¬<>!\"#$%&/()=?'\\¡¿/*-+_@[]^^{}";
 String expression="[a-zA-Z0-9\\p{all}]{0,50}";
    if(value.matches(expression)){
        System.out.println("true");
    }else{
        System.out.println("False");
    }`

어떤 캐릭터를 확인하고 싶을 경우에 도움이 된 것

[^]+

참고 URL : https://stackoverflow.com/questions/2912894/how-to-match-any-character-in-regular-expression

반응형