在我维护的一些代码中,我找到了表达式:
$r->{DISPLAY} =~ s/\Device//s;
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是它与设备和设备相匹配!
我没有在文档中提到\ D,只有\ d.
请有人澄清一下......
TLP*_*TLP 11
在那个正则表达式,\D看起来像一个错字.它同时适用于d和D,不仅是因为它不是一个数字(0-9)的任意字符相匹配.
更合适的正则表达式(如果意图匹配"device"或"Device")是:
s/(d|D)evice// # one way
s/[dD]evice// # another way
Run Code Online (Sandbox Code Playgroud)
该s选项也有点奇怪.来自perldoc perlop
s Treat string as single line. (Make . match a newline)
Run Code Online (Sandbox Code Playgroud)
并且在该行中没有这样的匹配.