>

문자열을 찾을 정규 표현식을 찾으려고하는데 파운드 기호 앞에 공백이 있고 공백이나 줄 바꿈이 앞에 오는 경우에만 일치합니다. 예를 들어 다음과 일치합니다.

<올>
  • #1234
  • #001234
  • 000123
  • 1234
  • 그러나 다음은 그렇지 않습니다 :

    <올>
  • 123-456
  • @1234
  • 123kok
  • 온라인 정규식 샌드 박스 중 하나를 사용하여 부정적인 모습을 보려고했습니다. \d*(?<=#|\s)\d{1,10}   하지만다음을 작동시킬 수 없습니다. 그래서 이것들 중에서 :

    <올>
  • 123-456
  • @1234
  • 123kok
  • 456  일치합니다

    • 답변 # 1

      (?<=...)   (?<!...) (이 앞에옵니다 ...)입니다.  (앞에 있지 않음)은 부정적인이면입니다. \d*(?<=#|\s) 를 작성  말이 안되고 (?<=#|\s) 처럼 행동합니다  같은 위치는 숫자와 # 가 될 수 없기 때문에  또는 공백. 그러나 문제는 아닙니다.이후조건에 대한 주장 : 미리보기 (여기서는 음수)입니다.

      (?<![^\s#])\d+(?!\S)
      
      

      이중 부정 :not앞에 공백이나 #이 아닌문자가 오는 것은 문자열의 시작 부분을 포함하는 데 유용합니다. 문자열의 끝을 포함하는 네거티브 lookahead (공백이 아닌 문자가 아님)와 동일합니다.

      분명히 :

      (?<=^|\s|#)\d+(?=\s|$)
      
      

      정확하지만 더 길다.

    관련 자료

  • 이전 VBNET 'With'문과 동등한 Python이 있습니까?
  • 다음 github - 클라이언트 비밀을 어디에서 어떻게 유지해야합니까?