繁体   English   中英

正则表达式修剪字符串末尾的数字

[英]Regular Expression to trim number at the end of a string

我有一个由字符串组成的文件。 该文件还包含日期。 我想删除字符串末尾的数字。 例如-

Str = 'part-at-1234'

新字符串应该是str= 'part-at'

我写了以下正则表达式

(-\d+)

我的正则表达式也匹配日期。 我想写一个只匹配字符串不包括日期的正则表达式。 先感谢您

试试这个, \d+任何数字一个或多个 & $匹配字符串的结尾

import re

re.sub("-\d+$",'' , "part-at-1234")

'part-at'

如果日期的格式为例如 12-12-20,您可以匹配连字符和 1+ 位,并且在连字符之前断言不是数字。

(?<!\d)-\d+$

正则表达式演示| Python 演示

示例代码

import re

regex = r"(?<!\d)-\d+$"
test_str = ("part-at-1234\n"
    "part-at-12-12-2020")

result = re.sub(regex, "", test_str, 0, re.MULTILINE)

if result:
    print (result)

Output

part-at
part-at-12-12-20

试试这个正则表达式:

.+\D+(?=\d+)

或者你总是可以 select 用这个结尾的数字,然后用空字符串替换它:

\d+$

尝试以下

s = re.sub("^\d+\s|\s\d+\s|\s\d+$", " ", p)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM