[英]Splitting a string after certain characters?
我將得到一個字符串,並且每當它具有“ |”,“ /”,“。”時都需要將其拆分。 要么 ”_”
我該如何快速完成? 我知道如何使用命令拆分,但是有什么辦法可以給它提供多個拆分條件? 例如,如果給定的輸入是
Hello test|multiple|36.strings/just36/testing
我希望輸出給出:
"['Hello test', 'multiple', '36', 'strings', 'just36', 'testing']"
使用正則表達式和正則表達式模塊:
>>> import re
>>> s='You/can_split|multiple'
>>> re.split(r'[/_|.]', s)
['You', 'can', 'split', 'multiple']
在這種情況下, [/_|.]
將拆分為這些字符中的任何一個。
或者,您可以使用列表推導來插入單個(也許是多個字符)定界符,然后在其上拆分:
>>> ''.join(['-><-' if c in '/_|.' else c for c in s]).split('-><-')
['You', 'can', 'split', 'multiple']
與添加的示例:
>>> s2="Hello test|multiple|36.strings/just36/testing"
方法1:
>>> re.split(r'[/_|.]', s2)
['Hello test', 'multiple', '36', 'strings', 'just36', 'testing']
方法2:
>>> ''.join(['-><-' if c in '/_|.' else c for c in s2]).split('-><-')
['Hello test', 'multiple', '36', 'strings', 'just36', 'testing']
使用groupby :
from itertools import groupby
s = 'You/can_split|multiple'
separators = set('/_|.')
result = [''.join(group) for k, group in groupby(s, key=lambda x: x not in separators) if k]
print(result)
產量
['You', 'can', 'split', 'multiple']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.