【问题标题】:What does s~ do in Perl? [duplicate]s~ 在 Perl 中有什么作用? [复制]
【发布时间】:2022-01-05 18:35:43
【问题描述】:

我正在使用的 Perl 文件包含许多 s~ 实例。我不熟悉 Perl,很难找到有关它的信息。我知道它与搜索和替换字符串有关。 s~ 到底是做什么的?

例子:

s~ (Text)~ <a href="../images/text.pdf" target="_top">$1</a>~ig if /<p/;

【问题讨论】:

  • 添加了与这个问题密切相关的链接(到重复的闭包)
  • 我认为这不应该被标记为欺骗。这些其他问题的前提是您知道该操作员在做什么。这个问题基本上是“这是什么?”,对于不知道它叫什么以及如何查找它的人来说,这是一个公平的问题。

标签: perl


【解决方案1】:

s 是替换运算符。它与$str =~ s/this/that/ 一样用于将$str 中的“this”更改为“that”。

虽然/ 是最常见的分隔符,但s 使用紧随其后的任何非空白字符来设置要在表达式的其余部分中使用的分隔符。 (许多其他运算符也是如此,例如mq 等。)

这个例子说用一个HTML锚元素替换文本 (Text),使用ig标志。

使用~ 而不是传统的/ 的原因是为了避免需要在替换文本中转义/,比如

s/ (Text)/ <a href="..\/images\/text.pdf" target="_top">$1<\/a>/ig if /<p/;

运行perldoc -f s可以找到更多详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 2019-12-17
    • 2016-09-10
    • 1970-01-01
    相关资源
    最近更新 更多