2013-01-15 1 views
5

방법은 다음과 같은 한정사가 다릅니 까 - 등 시나리오와 관련하여, 속도와게으르고 탐욕스러운 소유욕 부여의 차이점은 무엇입니까?

  • ?, ???+ 경기 0 또는 1 회.
  • **? and * +`모두 일치 번 이상입니다.
  • +, +?++은 모두 과 일치합니다.입니다.
    • ?, *+

  • 욕심 있습니다.
  • ??, *?+?마지 못해/게으른입니다.
  • ?+, *+++은이고, 이다.

이 용어의 의미를 이해하는 데 도움을 줄 수있는 사람이 있습니까? 왜 동일한 작업에 대해 각 한정 기호에 3 가지 변형이 있습니까?

+2

왜? 누군가 어딘가에서 그들을 사용하기 때문에? 정규식 문서를 읽고 IRB 또는 rubular.com을 사용하여 작업을 수행하고 작동 방식을 확인하고 향후 학습 한 내용을 기억할 시간이 필요합니다. 프로그램을 배우는 많은 사람들은 사소한 변화의 효과를 관찰하고 사람들에게 그러한 것들을 설명하도록 요구하지 않는 실험입니다. –

+0

http://www.regular-expressions.info/possessive.html – Phrogz

+0

@TimPietzcker 저에게 투표 해 주셔서 감사합니다. 내게는 중요하지 않지만 투표가 아래로 내려 가면 '새로운 글들'에 고정 될 것입니다. 이것은 치명적입니다. 나는 그러한 표결에 최소한 개입되어 있지만 그러한 개념을 갖기 위해 너무 예리한 개념을 가진 사람들을 너무 많이 강조합니다. 그러나 며칠이 지난 지금부터 일부 사용자들은 질문의 중요성을 알지 못하고 다른 사람들에게'투표를하지 말자 '고 생각하고있다. 내 '포스트'를 이해하지 못한다면 괜찮아. 그러나 대답이 게시되었을 때 대답이 너무 많이 알려지면 왜 투표하지 않은 사람으로 다시 돌아 오지 않습니까? – DoLoveSky

답변

7

문자열

aaaab 

을 가지고 다음과 같은 정규 표현식에가 일치하는 방법을 참조하십시오

Regex   Submatches 
       group 1 group 2 group3 
(a?)(a*)(ab) a  aa  ab 
(a??)(a*)(ab)   aaa  ab 
(a?+)(a*)(ab) a  aa  ab 
(a*)(a?)(ab) aaa    ab 
(a*?)(a?)(ab)   aaa  ab 
(a*+)(a?)(ab) aaaa    <Match fails!> 
(a+)(a*)(ab) aaa    ab 
(a+?)(a*)(ab) a  aa  ab 
(a++)(a*)(ab) aaaa    <Match fails!> 

설명 :

  • a? 시도 하나 a에 맞게,하지만 준비 있어요 그게 필요한 경우 아무것도 일치시키지 마라. 성공하기 위해 전체 경기.
  • a??은 일치하려고 시도하지만 전체 일치가 성공하는 데 필요한 경우 a과 일치 할 준비가되어 있습니다.
  • a?+a과 일치합니다. 그렇게 할 수 있다면 이 아닌이 전체 일치가 성공하는 데 필요한 경우 아무것도 일치하지 않게됩니다. 그래도 a과 일치하지 않으면 아무 것도 기꺼이 일치하지 않습니다.
  • a*은 가능한 한 많은 수의 a 개를 찾으려고 시도하지만, 전체 일치가 성공하는 데 필요한 경우 아무 것도 아니더라도 일치하는 숫자는 a입니다.
  • 은 아무 것도 일치 시키려하지 않지만 전체 경기가 성공하려면 반드시 필요한만큼 많은 수의 a과 일치 할 준비가되어 있지만 그 이상은 아닙니다.
  • a*+은 가능한 한 많은 a 개를 찾습니다.그렇게 할 수 있다면 이 아닌이 전체 일치가 성공하는 데 필요한 경우 a과 일치하도록 다시 감소합니다. 비록 하나의 a조차도 일치하지 않는다면 기꺼이 일치하지 않을 것입니다.
  • a+은 가능한 한 많은 수의 a 개를 찾으려고 시도하지만 전체 일치가 성공하는 데 필요한 경우 a (적어도 하나)과 일치하도록 준비되었습니다.
  • a+?a 한 개와의 일치를 시도하지만 전체 일치가 성공하려면 반드시 필요한만큼 많은 수의 a 개를 준비 할 수 있지만 그 이상은 아닙니다.
  • a++은 가능한 한 많은 a 개를 찾습니다. 그렇게 할 수 있다면 이 아닌이 전체 일치가 성공하는 데 필요한 경우 a과 일치하도록 다시 감소합니다. 단일 a조차도 일치하지 않으면 정규식이 실패합니다.
+0

마지막으로 일반적인 "하나 이상의 등", "탐욕/비 탐욕"을 뛰어 넘는 포괄적 인 설명. 프리마! – BernardK

+0

@tim 우수! 당신은 무슨 솔직한 설명을 주셨습니다! 그것을 좋아한다 그것을 좋아했다! :) 당신에게'+ 1'! – DoLoveSky

+0

@DoLoveSky, 투표를 위해 트롤을하지 마십시오. 구걸하지 않고 평판을 얻는 방법에 대한 설명은 http://stackoverflow.com/faq#reputation을 참조하십시오. –

관련 문제