【问题标题】:How do I replace non-alphanumeric chacters only at the beginning/endn of a string? [duplicate]如何仅在字符串的开头/结尾替换非字母数字字符? [复制]
【发布时间】:2019-08-26 19:23:26
【问题描述】:

我正在使用 Python 3.7。我有以下用于替换单词中的非字母数字字符(将函数应用于字符串数组)...

words = map(lambda x: re.sub(r'\W+', '', x), long_words)

如何修改上述内容,以便在单词的开头和结尾只替换字母数字字符?也就是说,数组中的一个单词看起来像

($abc-fff%%-)

会变成

 abc-fff

现在,它变成了

 abcfff

【问题讨论】:

  • 如果输入是_abc_ 怎么办?
  • 我觉得在这种情况下,就速度而言,没有regex 会更好。对于这样一个简单的操作,只需迭代并在字符串的开头和结尾使用not x.isalpha()

标签: python regex python-3.x


【解决方案1】:

使用^$ 匹配字符串的开始/结束:

print(re.sub(r'^\W+|\W+$', '', '($abc-fff%%-)'))

输出:

abc-fff

【讨论】:

    猜你喜欢
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 2018-11-05
    • 2013-06-13
    • 1970-01-01
    相关资源
    最近更新 更多