2012-11-15 4 views
0

전화 번호처럼 보이는 정규식을 만들려고합니다. 문자열에 둘 이상의 숫자가있는 경우 두 문자를 모두 찾습니다. 그래서이 일치하고 싶습니다/ 정규식 검색 전화 번호

  • N로 끝나지 않고, 다른 문자로 끝날 수

    • 10 + 문자 단어

  • 을 : 전화 번호는 다음과 같이 정의된다

    • 07158245215
    • 01244356356
    • 07158245215Y
    • 01244356356Y
    • 07158245215P
    • 01244356356P
    • 07158245215X
    • 01244356356X
    • 07,158,245,215 작업
    • 01,244 356,356 작업
    • 일 07,158 245,215/홈 07,158 245,215 // 수 있습니다 어려운 일
    • 직장 01244356356

    그리고 다음을 허용 :

      나는 부정적 예측 장난 삼아 생각해 한 N

  • 01244356356 071582 45215N
  • 01244356356N
  • /lookbehind하지만 밖으로 이해할 아무것도 얻을 수 없습니다. 가능한가요 아니면 .NET과 같은 상위 언어로해야합니까?

  • +0

    '적어도 하나의 전화 번호가 포함 된 전체 문자열과 일치합니까?'또는 '긴 문자열에서 전화 번호 추출'을 의미합니까? –

    +0

    이상적으로 문자열에서 숫자를 추출합니다. – Echilon

    답변

    1
    (?:\d\s*){10,}(?![\d\s]*N) 
    

    은 오랫동안 그 숫자가 N 다음에하지 않는 한, 더 긴 문자열 내에서 10 개 이상의 자리 전화 번호를 일치합니다. 각 자릿수 사이에 공백을 허용합니다. 모든 전화 번호는 항상 예에서와 같이 0로 시작하는 경우

    , 명시 적으로 정규 표현식에 그를 코딩 할 수 있습니다 :

    \b0\s*(?:\d\s*){9,}(?![\d\s]*N) 
    

    See it on RegExr합니다.

    +0

    감사합니다. – Echilon