簡體   English   中英

在某些整數字符模式后拆分字符串

[英]Split string after certain integer character pattern

我有一個字符串存儲在變量mystring 我想在character 4-digit-integer character模式 ie (4-digit-integer)之后拆分字符串。 我想這可以使用 Python regex 來完成。

mystring = 'Lorem Ipsum (2018) Amet (Lorem Dolor Amet Elit)'

期望輸出:

splitstring = ['Lorem Ipsum (2018)', 'Amet (Lorem Dolor Amet Elit)']

如果你不介意做一些過濾,你可以這樣做:

import re

string = 'Lorem Ipsum (2018) Amet (Lorem Dolor Amet Elit)'
result = [m for m in re.split('([^\d(]+\(\d{4}\))\s+', string) if m]
print(result)

輸出

['Lorem Ipsum (2018)', 'Amet (Lorem Dolor Amet Elit)']

當對捕獲組使用split 時,結果將包括在這種情況下的組([^\\d(]+\\(\\d{4}\\))即任何不是數字也不是開括號的東西,后面緊跟四個數字被括號包圍。不,后面的空格\\s+被遺漏了。

這是一個簡單的方法,您可以這樣做。

由於括號在 RE 中具有另一種含義(它們稱為捕獲組),因此您需要將它們轉義為: \\(用於打開括號。然后,您可以搜索(2018)然后按相應方式拆分文本:

import re
s = 'Lorem Ipsum (2018) Amet (Lorem Dolor Amet Elit)'
match = re.search(r'\(\d{4}\)', s)

split_string = [ s[:match.end()], s[match.end():] ]
print(split_string) 
# ['Lorem Ipsum (2018)', ' Amet (Lorem Dolor Amet Elit)']

暫無
暫無

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

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