>
문자열에 연속 3 자리가 포함되어 있는지 확인하려면 Java의 정규 표현식을 확인하고 싶습니다. 그러나 문제는 내 문자열에 유니 코드 문자가 포함될 수 있다는 것입니다. 문자열에 유니 코드 문자가 포함되어 있으면 유니 코드 문자를 건너 뛰고 (&AND # 뒤의 4 '.'건너 뛰기) 확인해야합니다. 몇 가지 예는

Neeraj : false
Neeraj123 : true
&#1234Neeraj : false
&#1234Neeraj123 : true
123N&#123D : true
Neeraj&#1234 : false
Neeraj&#12DB123 : true
&#1234 : false

  • 답변 # 1

    네거티브 룩백 어설 션을 사용해야합니다 :

    Pattern regex = Pattern.compile(
        "(?<!             # Make sure there is no...           \n" +
        " &\\#            # &#, followed by                    \n" +
        " [0-9A-F]{0,3}   # zero to three hex digits           \n" +
        ")                # right before the current position. \n" +
        "\\d{3}           # Only then match three digits.", 
        Pattern.COMMENTS);
    
    

    다음과 같이 사용할 수 있습니다 :

    Matcher regexMatcher = regex.matcher(subjectString);
    return regexMatcher.find();  // returns True if regex matches, else False
    
    

관련 자료

  • 이전 ftp - 사이트 이미지 디렉토리에서 권한이 갑자기 '00'으로 변경되었습니다
  • 다음 iphone - CCTouchDispatcher Cocos2d 20 베타 -2 ARC 사용