正则表达式在文本处理中的应用与技巧
1. 正则表达式的 /x 修饰符
正则表达式的 /x 修饰符具有两个重要作用。其一,它会忽略大部分空白字符,从而可以对表达式进行“自由格式”的编写,以提高可读性。其二,它允许使用以 # 开头的注释。
具体而言,/x 将大部分空白字符转换为“忽略我”的元字符,将 # 转换为“忽略我以及直到下一个换行符之前的所有内容”的元字符。不过,在字符类中,它们不会被当作元字符处理,这意味着即使使用了 /x,字符类也不是自由格式的。和其他元字符一样,如果需要将空白字符和 # 按字面意义处理,可以对它们进行转义。当然,也可以使用 \s 来匹配空白字符,例如 m/ /x。
需要注意的是,/x 仅适用于正则表达式,而不适用于替换字符串。尽管现在使用 s{…}{…} 形式进行替换操作,修饰符位于最后的 ‘}’ 之后(例如 ‘}x’),但在交流时仍将“x 修饰符”称为“/x”。
2. 构建文本处理程序
2.1 基础 HTML 字符替换
以下是一个综合的文本处理程序示例,首先将输入文件的内容读取进来,并进行基础的 HTML 字符替换:
undef $/;
# Enter "file-slurp" mode.
$text = < >; # Slurp up the first file given on the command line.
$text =~ s/&/&/g;
# Make the basic HTML...
$