Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有这个代码:
opendir(DIR, "."); while (readdir DIR) { print $1, "\n" if $_ =~ /(\w+)/i; }
它当然只得到 ASCII 字符串。如何使用正则表达式在输出中获取另一个非 ASCII 字符串?
UPD
例如,如果在“。” 目录有两个文件file和другойфайл. 所以当我运行这个脚本时,我只得到file输出,但我想得到另一个非英文名称的文件другойфайл
file
другойфайл
以下代码似乎有效:
use warnings; use strict; use Encode qw(decode); my $dir = $ARGV[0] || '.'; opendir my $dh, $dir or die "$0: $dir: $!\n"; while (readdir $dh) { $_ = decode 'UTF-8', $_; print $1, "\n" if /(\w+)/; }
当然,这假定您的文件系统以 UTF-8 存储名称。
输出:
file другойфайл
Jade JS 中的标签,没有尾随换行符