簡體   English   中英

如何刪除特定字符串后的字符

[英]How to remove characters after a specific string

目標:刪除四位數之后的字符(如一年)。 下面是一個代表。 我有“年”。 我想使用 regex 或 str.replace 或其他更簡單的建議來獲得“years_goal”(即刪除四位數年后的所有內容。)。

years = ["Nov 1999",
        "Oct. 2003",
        "August 2007 8:00 pm et"]

years_goal = ["Nov 1999",
            "Oct. 2003",
            "August 2007"]

你可以使用模塊re

您需要的正則表達式是 - ^[0-9 ]*[a-zA-Z ]+\d{4}用於匹配一個月和一年后

這不會在月后打印帶點的字符串,但會起作用

import re
regex = "^[0-9 ]*[a-zA-Z ]+\d{4}"
for year in years:
    try:
        print(re.match(regex, year)[0])
    except:
        continue

您可以搜索 4 位數字的末尾並切出 rest:

output = [item[:re.search("\d{4}", item).end()] for item in years]

或者您可以在 4 位數字之后檢查所有內容的匹配項並將其刪除:

output = [re.sub("(?<=\d{4}).*", "", item, re.DOTALL) for item in years]

兩種解決方案應該具有幾乎相同的速度和復雜性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM