我正在使用Request Tracker 4.0中的一些Perl代码,并且遇到了一个错误,即票据请求者的消息被切断.我是Perl的新手,我已经用正则表达式完成了一些工作,但即使阅读了很多,我也遇到了一些问题.
我已将问题缩小到这行代码:
$content =~ s/\n-- \n.*?$//s
Run Code Online (Sandbox Code Playgroud)
我不完全理解它在做什么,并希望得到更好的解释.
我知道这s/ /与模式匹配\n-- \n.*?$并且没有任何替代.
我不明白是什么.*?$.这是我的基本理解:
. 是除\n之外的任何字符 * 是前一个字符的0或更多倍? 是前一个字符的0或1倍$ 是字符串的结尾 然后,根据我的理解,决赛s使.比赛成为新线
所以,粗略地说,我们正在替换以...开头的任何文本\n-- \n- 这行代码导致了一些可疑的行为,如果有人可以解释这里发生了什么,我会很乐意解决这个问题.
有人可以解释这条线在做什么吗?它只是删除了第一个之后的所有文本\n-- \n还是有更多文本
?
冗长的部分/现实生活中的问题(你不需要阅读本文来回答这个问题)
我的确切问题是它正在删除签名处的引用内容.
因此,如果来自客户的电子邮件A说:
订单ABCD怎么回事?
- 一些客户
工作人员回复说(注意失去客户的签名)
它今天发货
订单ABCD怎么回事?
客户回复
我没有得到它,它没有发货!
- 一些客户它今天发货
订单ABCD怎么回事?
当我们回复时,他们的信息会切断 - 这会杀死所有上下文.
它今天发货,追踪号码12345
我没有得到它,它没有发货!
并导致更多的工作解释它是什么顺序,等等.