【问题标题】:How can I match all alphanumerical characters and the underscore, the plus, the minus and the decimal point?如何匹配所有字母数字字符和下划线、加号、减号和小数点?
【发布时间】:2015-10-15 14:06:22
【问题描述】:

我正在尝试使用来自机器的字符串来创建文件夹和文件名。该机器是晶圆探测器。该文件夹和文件可以存在于 Windows 和 Linux 操作系统上。 如何在 (Iron)Python 中删除除 +、-、.、_ 和所有带有正则表达式的字母数字字符之外的所有字符?到目前为止,我得到了以下内容。但这不包含 .、- 或 + 。

>>> re.sub(r'[\W]+', '', ':LOT002_Temp<3.00000E+01>')
'LOT002_Temp300000E01'

我希望答案如下:

'LOT002_Temp3.00000E+01'

感谢任何帮助。

【问题讨论】:

标签: python regex python-2.7


【解决方案1】:

您可以使用基于否定的字符类:

re.sub(r'[^\w.+-]+', '', ':LOT002_Temp<3.00000E+01>')
'LOT002_Temp3.00000E+01'

[^\w.+-] 将匹配不是+-. 的任何非单词字符。

【讨论】:

    【解决方案2】:

    使用http://rubular.com/ 它们非常适合制作正则表达式的原型

    $ python
    >>> import re
    >>> re.sub(r'[^\w\+\.]+' , '', ':LOT002_Temp<3.00000E+01>')
    'LOT002_Temp3.00000E+01'
    

    【讨论】:

    • 啊不知道那个..酷。旧习难改。当我认为正则表达式时,我认为 rubular。哈哈哈!不过谢谢,我会给它做书签。
    猜你喜欢
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 2018-11-21
    • 1970-01-01
    • 2015-08-13
    相关资源
    最近更新 更多