【问题标题】:Removing characters from a string in Perl that are not alphanumeric从Perl中的字符串中删除字符而不是字母数字
【发布时间】:2015-02-22 21:54:15
【问题描述】:

我在 Perl 中使用过几次字符串替换,并且有特定的子字符串并用其他东西替换它们。

我很好奇是否有只保留某些字符的技巧,特别是我想从字符串中删除任何不是 a-z、A-Z 或 0-9 的字符。

例如, a b c !@#$%^&*()_~+=[]{}\|;':",./<>? 123 就是 abc123

【问题讨论】:

    标签: string perl replace


    【解决方案1】:

    使用正则表达式,

    s/[^a-zA-Z0-9]//g;
    

    使用翻译,

    tr/a-zA-Z0-9//dc;
    

    【讨论】:

    • @VenomFangs 你可以选择任何字符作为分隔符。
    • @VenomFangs:如果你想做一个正则表达式 match 那么你可以省略m,只要你使用默认的/分隔符,所以/abc/m/abc/m~abc~ 相同。通常你会使用斜杠,除非模式本身包含斜杠,当 m~a/b~ 比 'm/a\/b/. A *substitution* always has the leading s` 更清晰时,你可以随时使用任何你喜欢的分隔符,但值得指出的是类似括号的字符是配对的,所以 s/abc/def/s<abc><def>s<b>{x} 相同。
    • 没有类似\w的快捷方式吗? Unicode 安全性如何?
    猜你喜欢
    • 1970-01-01
    • 2020-03-20
    • 2022-01-09
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    相关资源
    最近更新 更多