>

문자열 ex = 1,2,3,4,5-7,8,9,10-15,34,898

위 문자열에서 정규 표현식은 다음 사항을 확인해야합니다

<올>
  • ex 문자열은 숫자 값 (0-9)과 두 개의 특수 문자 만 포함해야합니다 -혼자.
  • Regex는 ex, space, cama (,)로 시작해서는 안되며 hyfun (-), 동일하지 않아야합니다.
  • cama (,) 뒤에는 숫자 값만 있어야합니다.
  • 문자열 ex는 양수 0-9 만 지원해야합니다.
  • hyfun (-) 뒤에는 양의 숫자 값만 있어야합니다.
  • 문자열 어딘가에 공백을 허용해서는 안됩니다.
  • hyfun (-) 기호는 위의 예 문자열에서 범위 표시기이므로 양수의 접두사와 접미사.
  • cama (,)는 문자열의 각 요소에 대한 구분 기호이므로 양수 값으로 성공해야합니다.
  • 그래서 나는 개별 정규 표현식으로 시도하여 내 코드를 어색하게 만들고 거의 실패하지 않습니다

    //Regex Pattern for validating number alone as its starting and ending of the string
            Pattern digits = Pattern.compile ("^[0-9](.*[0-9])?$");
     //Regex Pattern for validating special character along with the digits alone
            Pattern special = Pattern.compile("^[0-9,-]*$");
    //Regex Pattern for validating only positive numeric values alone
            Pattern positiveNumeric = Pattern.compile("^\\d+$");
    
    

    • 답변 # 1

      다음은 일반적인 정규식 패턴입니다 :

      ^\d+(?:-\d+)?(?:,\d+(?:-\d+)?)*$
      
      

      데모

      \d+(?:-\d+)?  하나 이상의 숫자와 일치하고 하이픈과 하나 이상의 다른 숫자가 선택적으로 표시됩니다. 그런 다음 패턴 끝에 이것을 추가합니다 :

      (?:,\d+(?:-\d+)?)*
      
      

      이는 콤마 다음에 다른 숫자/숫자 범위 그룹이 0 번 이상 일치합니다.

      와이즈 비즈  그리고 ^  예를 들어 사용하는 경우 Java 코드에 앵커가 필요하지 않을 수 있습니다. 와이즈 비즈 이 앵커를 자동으로 추가합니다.

      $

    관련 자료

  • 이전 python - Visual Studio 코드가 디버거에서 Django 프로젝트를 시작할 수 없음
  • 다음 c# - XML 파일에 속성 값을 저장하는 방법은 무엇입니까?