2017-09-04 2 views

답변

6

빈 문자열로 분할하는 경우 문자열의 앞뒤에 빈 문자열이 있으므로 반환 된 목록의 시작과 끝에 빈 요소를 가져옵니다. 당신이 원하는 무엇

완전히 기능적으로 기입, 매개 변수없이 .comb입니다 :

"hi".comb.elems.say; # 2 

더 많은 정보를 원하시면 https://docs.perl6.org/routine/comb#(Str)_routine_comb를 참조하십시오. 당신은 당신이 문자 옆에 일치하는 정규식 /<|wb>/를 사용하는 것처럼이 동일 구분 기호를위한 빈 str을 “”를 사용할 때

2

그 이유는. 따라서 첫 번째 문자 앞에 일치하고 마지막 문자 뒤에 일치합니다. Perl 5는이 경우에 (그리고이 경우에만)이 "여분"문자열을 제거합니다.이 문자열은 혼동이있는 곳에 위치합니다. 펄 6 대신 무엇을

명시 적으로 :skip-empty

'hi'.split('') :skip-empty 
'hi'.split('', :skip-empty) 

split("", "hi") :skip-empty 
split("", "hi", :skip-empty) 

또는 당신이 실제로 원하는 지정을 사용하여 다음을 수행 할 수 있습니다

'hi'.comb(/./) 
'hi'.comb(1) 
'hi'.comb 

comb(/./, 'hi') 
comb( 1, 'hi') 
관련 문제