簡體   English   中英

使用正則表達式將字符串拆分為 2 個字符串

[英]Splitting a string in 2 strings using regular expression

早上好,我有一個問題,使用 Webscraping,我以字符串格式提取信息,如下所示:

《2018年5月發行無有效期》

我想要的是使用正則表達式將此字符串拆分為 2 個字符串,我的想法是:每當您找到 4 個數字后跟“否”時,我想創建以下字符串:

"Issued May2018 - No expiration date".

通過這種方式,我能夠以實現兩個字符串的方式使用應用於“-”的方法“split”:

  • 2018 年 5 月發布
  • 無有效期

我正在考慮使用正則表達式

\d\d\d\dNo

它應該能夠識別 2018No,但我不知道如何進行才能將其替換為

May2018 - No expiration date 

並設置使用拆分 function 的地板

有什么建議么? 其他方法被很好地建議

您可以使用捕獲組捕獲 4 位數字,然后匹配No

在替換中使用捕獲組 1 值,后跟- No

import re

s = "Issued May2018No expiration date"
pattern = r"(\d{4})No "
print(re.sub(pattern, r"\1 - No ", s))

Output

Issued May2018 - No expiration date

請參閱Python 演示正則表達式演示

使用re.sub

\g<1>在傳遞給 re.sub() 的 repl 參數的字符串中表示,作為參考組 1 的匹配結果。

import re

s = "Issued May2018No expiration date"
print(re.sub("(\d{4})(No)", "\g<1> - \g<2>", s))

# 'Issued May2018 - No expiration date'
import re

string = "Issued May2018No expiration date"

m = re.findall(r"^(.*[0-9]{4})(No.*)$", string)

print(m[0][0] + " - " + m[0][1])

->

Issued May2018 - No expiration date

暫無
暫無

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

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