programing

Regex 플러스 대 스타의 차이?

newsource 2022. 11. 27. 21:17

Regex 플러스 대 스타의 차이?

다음 중 어떤 차이가 있습니까?

(.+?)

그리고.

(.*?)

php에서 사용할 때preg_match정규식?

이를 수량화라고 합니다.

*앞의 식 중 0개 이상

+1개 이상의 앞의 표현

디폴트에서는, 수량 지정자는 탐욕적입니다.즉, 가능한 한 많은 문자와 일치합니다.

?수량화자가 동작을 변경하여 이 수량화자가 "불합격"이 되도록 한 후, 가능한 한 적게 일치함을 의미합니다.

욕심/불충실 예시

예를 들어 문자열 "abab"에 있습니다.

a.*b"ab"과 일치합니다(preg_match_all은 일치한 "ababab"을 반환합니다).

하는 동안에a.*?b선두의 「ab」만 일치합니다(preg_match_all은 2개의 일치, 「ab」를 반환합니다).

정규식을 온라인으로 테스트할 수 있습니다. 예를 들어 Regexr에서 이 예제를 참조하십시오.

첫 번째 (+)는 1개 이상의 문자입니다.두 번째 (*)는 0자 이상입니다.둘 다 욕심이 없다(?일치시킵니다( )..).

+하나 이상의 문자와 일치합니다.

*임의의 숫자(0 포함)의 문자와 일치합니다.

?는 게으른 표현을 나타내므로 가능한 한 적은 글자로 일치합니다.

RegEx에서는{i,f}"사이"를 의미합니다.i로.f성냥"을 클릭합니다.다음 예시를 살펴보겠습니다.

  • {3,7}3 ~ 7의 매치를 의미합니다.
  • {,10}하한 없이 최대 10개의 일치(즉, 하한은 0)를 의미합니다.
  • {3,}상한이 없는 최소 3개의 일치(즉, 상한은 무한)를 의미합니다.
  • {,}일치 횟수에 대한 상한 또는 하한이 없음을 의미합니다(즉, 하한은 0이고 상한은 무한).
  • {5}정확히 4를 의미합니다.

대부분의 좋은 언어에는 약어가 포함되어 있습니다.RegEx도 약어도 포함되어 있습니다.

  • +의 줄임말이다{1,}
  • *의 줄임말이다{,}
  • ?의 줄임말이다{,1}

즉,+에는 적어도1개의 일치가 필요합니다.*임의의 수의 일치를 받아들이거나 일치가 전혀 없습니다.?는 1개 이하의 일치 또는0개 이하의 일치만을 받아들입니다.

크레딧 : Codecademy.com

A +는 앞의 패턴의 1개 이상의 인스턴스와 일치합니다.a*는 이전 패턴의 0개 이상의 인스턴스와 일치합니다.

따라서 기본적으로는,+를 사용하는 경우 패턴의 인스턴스가 하나 이상 있어야 합니다.*이치노

대조하는 문자열은 다음과 같습니다.

ab

" "(ab.*)는 캡처 합니다.ab

「」에 비해,(ab.+)일치하지 않고 아무것도 반환하지 않습니다.

following이 됩니다.aba 「」의 경우''(ab.+)

aba

+ 1번, 1번입니다.*0으로 하다

별은 플러스(+)와 매우 유사하지만 유일한 차이점은 플러스(+)가 앞의 문자/그룹 중 하나 이상과 일치하는 반면 별은 0 이상과 일치한다는 것입니다.

이전 답변에서는 간단한 예를 강조하지 못했다고 생각합니다.

예를 들어 어레이가 있습니다.

numbers = [5, 15]

^[0-9]+ :치:15 단, 만. 만. 만.^[0-9]*5 and 15 점은 ''는 '다르다'는 '다르다'와 '다르다'는'+연산자에는 이전 정규식 중 하나 이상의 중복이 필요합니다.

언급URL : https://stackoverflow.com/questions/8575281/regex-plus-vs-star-difference