它在bash中是什么意思?

时间:2019-01-09 15:27:50

标签: bash perl unicode

spkgender=$(perl -ane ' s/.*gender\:\W*(.).*/lc($1)/ei && print; ' <$rdm)

这是正则表达式,它从“性别:男性”中提取M,但不适用于Unicode。

如何使其与unicode一起使用?

它不适用于“性别:Мужской”-看起来\W“吞噬”了所有unicode符号。

1 个答案:

答案 0 :(得分:-1)

使用/u正则表达式修饰符。来源:https://perldoc.perl.org/perlre.html

spkgender=$(perl -ane ' s/.*gender\:\W*(.).*/lc($1)/uei && print; ' <$rdm)

或者,使用官方的POSIX字符类。代替\W使用[[:blank:]]。据我所知,它支持Unicode。

此外,请确保总体上正确使用Unicode。参考:https://perldoc.perl.org/perlunicode.html

  

当字符串来自标记为Unicode的外部源时
  -C命令行选项可以指定程序的某些输入是Unicode,并且您的Perl代码可以读取该值,请参见perlvar中的$ {^ UNICODE}。