簡體   English   中英

如何找到字符串的特定部分?

[英]How can i find a specific part of a string?

我正在訪問一個 csv 文件,循環遍歷它的所有行(字符串),我也想保留/打印每個字符串的所有以“。”開頭的部分,中間有兩個單詞並以“。”結尾。 “?” 或者 ”。”。

例如,如果字符串是:“這是我的新頻道。請訂閱。” 我只想保留“。請訂閱!”

到目前為止,我只有這個來告訴我每個字符串中有多少個單詞:

with open("data2.csv", encoding="utf-8", newline='') as f:
    reader = csv.reader(f)
    for row in reader:
        rowstr = str(row[1])
        res = len(row[1].split())
        print(res)

我試過了:

with open("data2.csv", encoding="utf-8", newline='') as f:
    reader = csv.reader(f)
    for row in reader:
        rowstr = row[1]
        res = len(row[1].split())
        re.findall(r"\.\S+\s\S+[.?!]", rowstr)
        print(row[1])

我沒有從 findall 得到 output,只能從打印行 [1]

解決它

工作代碼:

with open("data2.csv", encoding="utf-8", newline='') as f:
    reader = csv.reader(f)
    for row in reader:
        rowstr = row[1]
        res = len(row[1].split())
        finalData = re.findall(r"(\.\W\w+\W\w+[\.\?!])", rowstr)
        print(finalData)

您可以使用正則表達式:

re.findall(r'(\.\W\w+\W\w+[\.\?!])$',"This is my new channel. Please subscribe!" )

其中output: ['. Please subscribe!'] ['. Please subscribe!']

正則表達式是此類問題的最佳解決方案。 請參考這里

暫無
暫無

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

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