여러 개의 문자를 작은 따옴표 나 큰 따옴표로 바꾸려고합니다. 큰 유니 코드 코드 포인트에서 일치하는 Perl 정규식
perl -Mutf8 -pi -e "s/[\x{2018}\x{201A}\x{201B}\x{FF07}\x{2019}\x{60}]/'/ug" test.txt
perl -Mutf8 -pi -e 's/[\x{FF02}\x{201C}\x{201D}\x{201E}]/"/ug' text.txt
만 백틱 문자
가 제대로 교체됩니다# Replace all with double quotes
" fullwidth
“ left
” right
„ low
" normal
# Replace all with single quotes
' normal
‘ left
’ right
‚ low
‛ reverse
` backtick
내가이 일을하려고 해요 ... :
여기 내 테스트 파일입니다. 나는 그것이 다른 코드 포인트가 너무 큰 것과 관련이 있다고 생각하지만, 이것에 대한 어떠한 문서도 찾을 수 없다.
여기에 one-liner은 유니 코드 코드 포인트를 덤프하여 정규식과 일치하는지 확인합니다.
$ awk -F\ '{print $1}' test.txt | \
perl -C7 -ne 'for(split(//)){print sprintf("U+%04X", ord)." ".$_."\n"}'
U+FF02 "
U+201C “
U+201D ”
U+201E „
U+0022 "
U+0027 '
U+2018 ‘
U+2019 ’
U+201A ‚
U+201B ‛
U+0060 `
정규식이 일치하지 않는 이유는 무엇입니까?
감사합니다. –
@ tchrist, -CSAD를 -CSD로 대체하여 답을 수정하십시오. 나는 그렇게 할 수있는 편집 권한이 없습니다. –
@ HansDeragon 완료. – tchrist