[英]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.