이 정규 표현식이 문자열의 b
과 일치하지 않는 이유는 무엇입니까?Ruby Regex *가 문자 시퀀스와 일치하지 않습니다.
'abbbbbbb'.match(/b*/)
#=> #<MatchData "">
이 못하다 :
'abbbbbbb'.match(/b+/)
#=> #<MatchData "bbbbbbb">
*
의 정의는 "별표는 앞 요소의 제로 이상의 존재를 나타내는".+
의 정의는 다음과 같습니다. "더하기 기호는 이전 요소 중 하나 이상이 있음을 나타냅니다."
두 연산자의 유일한 차이점은 일치하는 숫자입니다. 둘 모두 7 b
과 일치해야합니다.
rubular.com을 사용하면 정규 표현식을 테스트 할 수있는 정규식 응용 프로그램이 있습니다. * – Schylar
뒤에 b를 넣으면'b * '는 0 이상 b를 의미합니다. 2 경기가 없을거야? 아무것도 아니고'bbbb'? – Kamehameha
''abbbbbbb '[/ b * /] => ""'는 문자열 시작 부분의 빈 문자열과 일치합니다. ''bbbbbbb '[/ b * /] =>'bbbbbbb ''. "abbbbbbb.scan (/ b * /) => [" ","bbbbbbb "," "]'도 참고하십시오. –