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.
我在文本中有以下行:
int* a, b;
预期结果是:
int *a, b;
以下Perl代码应该产生预期的行:
Perl
$line =~ s#\s*\*\s*#\s\*#g;
不幸的是,结果如下:
int*a, b;
正则表达式有什么问题?
我认为您\s不能替代使用;它在搜索中表示一个字符类(空格,包括空格、制表符等),但一个类在替换中没有意义。使用正常的空间。
\s
只是改变:
经过:
$line =~ s#\s*\*\s*# \*#g;
\s在替换部分无效。
也试试这个。
$line =~ s/(\S)\*(?=\s+)\s*/$1 \*/;
tags posted from TinyMCE