Python正则表达式:删除字符串末尾的模式

时间:2015-10-02 18:52:39

标签: python regex

输入:Sub Worksheet_Change(ByVal Target As Range) If Target.Address = Worksheets("Expense by Individual").Range("A3").Address Then Worksheets("Expense by Individual").PivotTables("PivotTable2").RefreshTable Worksheets("Expense Pivot").PivotTables("PivotTable3").RefreshTable End If End Sub

所需输出:blah.(2/2)

输入可以是“blah。(n / n)”,其中n可以是任何单个数字。

如何使用正则表达式来实现“等等”?这是我目前使用的正则表达式不起作用:

blah

4 个答案:

答案 0 :(得分:5)

您需要使用正则表达式\.\(\d/\d\)$

>>> import re
>>> str = "blah.(2/2)"
>>> re.sub(r'\.\(\d/\d\)$', '',str)
'blah'

<强> Regex explanation here

Regular expression visualization

答案 1 :(得分:3)

我非常喜欢@ idjaw方法的简洁性。如果你用正则表达式解决它:

In [1]: import re

In [2]: s = "blah.(2/2)"

In [3]: re.sub(r"\.\(\d/\d\)$", "", s)
Out[3]: 'blah'

在这里,\.\(\d/\d\)$将匹配单个点后跟一个左括号,后跟一个数字,后跟一个斜线,后跟一个数字,后跟一个字符串末尾的右括号。

答案 2 :(得分:2)

这样做是因为你总是希望分开.

s = "stuff.(asdfasdfasdf)"
m = s.split('.')[0]

答案 3 :(得分:1)

只需匹配您不想要的内容并将其删除即可。在这种情况下,字符串末尾的非字母:

>>> re.sub(r'[^a-zA-Z]+$', '', "blah.(1/2)")
'blah'