2014-09-26 5 views
2

과 일치시키지 않습니까? 또는 CentOS 6.5에서 5.10.1의 주식과 5.10.1을 사용하여 잘못된 게임을하고 있습니다 (멀티 플레이어 게임 채팅 로그에서 러시아어 맹세 단어와 일치 시키려고 할 때).러시아어 단어의 경계를 b

# echo блядь | perl -ne 'print if /\bбля/' 

# echo блядь | perl -ne 'print if /бля/' 
блядь 

# echo $LANG 
en_US.UTF-8 

왜 첫 번째 명령이 아무것도 인쇄하지 않습니까?

+0

무엇 u''에 대한 유니 코드 [수정 자] (http://perldoc.perl.org/perlre.html#Modifiers)''print if/\ bбля/u''는 perl에 익숙하지 않습니다. –

+0

불행히도'/ u'는 작동하지 않습니다 : * "/ \ bхуй/u"근처에서 -e 줄 1에 연산자가 예상되는 곳을 알았습니다. * –

답변

3

당신은 소스 코드를 UTF-8 (use utf8)를 포함 펄 말할 필요, 입력 (-CI)과 출력 (-CO)은 UTF-8로 인코딩 된 것을 :

echo 'помёт' | perl -CIO -ne 'use utf8; print if /\bпомё/' 
+0

좋은 답변입니다! 나는 여러 러시아어 서버를 sysadmin하고 있는데 왜 필자의 perl 운영자가 CLI에서 작동하지 않는지에 대해 궁금해했다. –

+2

왜'-CS'가 아닌지 궁금해한다. 'perl -Mutf8 -CS -ne'은 짧습니다 :) :) – jm666