在Perl中是否有一种方法来保存和打印字符串变量中的所有反斜杠? 例如:在Perl字符串中保留反斜杠
$str = 'a\\b';
输出是
a\b
,但我需要
a\\b
的问题是不能以任何方式处理字符串逃避,因为我 反斜杠必须从数据库中读取复杂的正则表达式,并且不知道它们出现在哪个组合和编号中,并且必须完全按照它们在Web上打印它们页。
我试着用模板工具包和html和html_entity过滤器。它的工作原理迄今为止唯一的方法是使用一个单一这里引用文件:
print <<'XYZ';
a\\b
XYZ
但我不能插值的变量,这使得该解决方案毫无用处。
我试图写一个字符串到网页,文件和壳,但没有运气,总是一个反斜杠消失。也许我完全在错误的轨道上,但什么是正确的方式来打印复杂的正则表达式,包括所有组合和数字中的反斜杠,而没有任何更改?
换句话说: 我有一个数据库包含数百个正则表达式作为字符串数据。我想用Perl读取它们,并将它们精确地打印在网页上,就像它们在数据库中一样。 许多管理员都对这些正则表达式有所改变,所以我不知道如何以及如何逃避。 一个典型的例子是这样的: 'C:\\test\\file \S+'
,但它可能会改变第二天 '\S+ C:\\test\\file'
也许一个正确的结论是准确逃脱每反斜线一次在组合中,无论它出现?这意味着它可以将它们加倍。那么问题就没有我担心的那么大了。我在bash上测试了它,它连续运行了两个甚至三个反斜杠(4个backslaches打印2个反斜杠和3个反斜杠)。
请举例说明你想做什么。一旦反斜杠在变量中,它们将保持不变,并且如果它们插入到字符串中,它们将正确显示。将一对反斜杠放入字符串*的唯一方法是将它们加倍,但这不应该成为问题。有几个软件层将反斜杠视为转义字符,因此您的问题可能不在Perl内。 – Borodin 2013-04-23 12:09:47