【问题标题】:How to match only vertical tab?如何仅匹配垂直标签?
【发布时间】:2016-08-02 10:13:16
【问题描述】:

我正在尝试去除垂直制表符。我试过使用\v,但这似乎也匹配换行符:

$str =~ s/\v/ /;

如何在 perl 中只匹配垂直制表符?

【问题讨论】:

  • 警告有什么帮助?
  • @CJ7:警告总是有帮助的。 @ikegami:“似乎匹配换行符”让我觉得它可能不匹配 \v,而且他们可能使用的是不支持 \v 的旧 perl。

标签: regex perl pattern-matching


【解决方案1】:

来自perlrebackslash

$str =~ /\cK/;  # Matches if $str contains a vertical tab (control-K).

【讨论】:

  • 字符串示例会有所帮助。
  • @user2705585, $str = "\cK";
【解决方案2】:

\v 不仅匹配行列表(垂直制表符);它匹配所有垂直空白字符。

$ unichars '\v' | cat
 ---- U+000A LINE FEED
 ---- U+000B LINE TABULATION
 ---- U+000C FORM FEED
 ---- U+000D CARRIAGE RETURN
 ---- U+0085 NEXT LINE
 ---- U+2028 LINE SEPARATOR
 ---- U+2029 PARAGRAPH SEPARATOR

您想专门匹配 U+000B LINE TABULATION。您可以使用以下任何一种:

\x0B
\x{B}
\x{0B}
\x{000B}
\x{00000B}
\013
\cK
\N{U+B}
\N{U+000B}
\N{U+00000B}
\N{LINE TABULATION}
\N{VT}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    相关资源
    最近更新 更多