>

이 정규식패턴이 있습니다

(\d?[a-z]*\d+[a-z]*-?\d*[a-z]*\d*)

및 예 : 이제목

뉴 발란스 mrl420 회색-뉴 발란스의 보온병 인 스 트래 크 리 히트 위치 샌드위치 스니커즈. MRL420 serie van New ...

이것은 mrl420과 일치합니다

그러나 내가 원하는 것은 전체 일치가 7 자 이상일 때만 일치를 반환 하므로이 경우 일치하지 않아야하지만이 경우에는

new balance mrl420grey-뉴 발란스의 보온병 인 strakke lichtgewicht 스니커즈입니다. MRL420 serie van New ...

일치해야합니다.

예 :

(\d?[a-z]*\d+[a-z]*-?\d*[a-z]*\d*){7,} or (\d?[a-z]*\d+[a-z]*-?\d*[a-z]*\d*).{6,}

그러나 이것이 정답을 제공하지는 않습니다. 그렇다면 7 자 제한은 마지막 요소 (이 경우 자릿수)에만 적용되는 것 같습니다.

그래서 원하는 결과를 어떻게 얻습니까? 요약하자면 다음과 같습니다.

먼저 정규식 패턴 일치를 테스트하십시오. 일치하는 경우 7 자 이상인지 확인하십시오.

물론 이것은 두 개의 별도 단계로 수행 될 수 있지만, 하나의 표현으로도 수행 될 수 있습니까?


  • 답변 # 1

    사용할 수 있습니다

    \b(?=[a-z\d-]{7})\d?[a-z]*\d+[a-z]*-?\d*[a-z]*\d*
    
    

    정규 데모보기

    세부 정보:

    \b  -단어 경계

    (?=[a-z\d-]{7})  -단어 경계 위치 바로 뒤에는 문자, 숫자 또는 - 가 7 자 여야합니다.  (와이즈 와이즈)  대소 문자를 구분하지 않는 수정자를 사용하여 대문자와 소문자를 모두 일치시킬 수 있음)

    i  -1 또는 0 자리 숫자

    \d?  -0 개 이상의 글자

    [a-z]*  -1 개 이상의 숫자

    \d+  -0 개 이상의 글자

    [a-z]*  -선택적인 하이픈

    -?  -0 개 이상의 숫자

    \d*  -0 개 이상의 글자

    [a-z]*  -0 자리 이상.

    \d*

관련 자료

  • 이전 JavaScript로 기존 FileList 객체에 추가하는 방법은 무엇입니까?
  • 다음 php - 라 라벨 - 근처에서 사용할 올바른 구문의 mariadb 서버 버전