有人可以告诉我下面两个代码的定义吗?
$file_directory =~ s/[^\\\/]+$//;
$new_id =~ m/([ABCISRDT]\d\d\.\d\d\.\d\d)$/i)
它类似于下面的代码,但语法不同
$string_to_change =~ s/pattern_to_look_for/string_to_replace_with/g;
我理解s / [是搜索,^行的开头"符号和$是行尾"符号;我不明白是\ /] +。
假设文件目录是W:\ folder_1 \ music \ common在Perl脚本中它应该是W:\\ folder_1 \\ music \\ common但是它中还有一个\且(我意识到我什么时候)正在输入它需要3 \才能显示2 \)+代表什么?如果我希望将其转换为Linux应该更改是这样的吗?
$file_directory =~ s/[^\\//]+$//;
至于最后一段代码,我需要有人向我解释它的作用谢谢。
答案 0 :(得分:2)
此表达式
$ file_directory = ~s / [^ \\\ /] + $ //;
将匹配最后一个前向或后向斜杠后的所有字符,并将其替换为空。通常这将以目录名称结束。 (请注意,有更安全的方法可以执行此操作,这也是跨平台的。例如Path::Class。)
<table style="background-color: blue;" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
</td>
</tr>
</table>
是一个否定的字符类,它将匹配组中没有的任何内容。[^]
提供一个或多个匹配+
匹配字符串结尾如果我希望将其转换为Linux,那么改变是这样的吗?
由于该行已经检查了两个斜杠,因此该代码应该适用于Linux。
答案 1 :(得分:1)
这些方括号分隔字符类,这意味着列出的任何字符。以^
开头的字符类是否定的字符类 - 它意味着其他而不是列出的那些字符。
表达式:
[^\\\/]+$
表示&#34;除了输入结尾处的斜线之外的任何字符中的一个或多个#34;