python - 从字符串中提取换行符文本
问题描述
我有如下所述的字符串:
string=" (2021-07-04 11:58:43 PM BST)
--- len (Tradition ) 对 sen Hi yohan 说(2021-07-05 12:04:42 AM BST)
--- len(传统)对 yohan 说好的 -5 / 0 。(2021-07-04 11:47:14 PM BST)
--- Ke Ch 对 Hano 说你好(2021-07-05 12:09:41 AM BST)
--- len 对 yohan sen 说是 -5 / 0 TN -- / +2.5
Processed by wokl Archive for son malab | 2021-07-05 12:26:44 AM
BST
---"
我只想在时间戳之后和之前提取文本。
预期输出为:
text=['yohan sen Hi yohan','yohan sen okay -5 / 0 ','Han Cho hello','sen yes -5 / 0 TN -- / +2.5']
我试过的:
text=re.findall(r'\bsays to (.*(?:\n(?!\(\d|---).*?)*?)\s*\n(?:\(\d|---)', string)
解决方案
使用您显示的示例,请尝试遵循 Python 代码。用 Python3 编写和测试。
import re
##Create variable here string with user's values, since variable is too long so mentioning it as a comment here....
var1 = re.findall(r'says\s+[^(]*',string,re.M)
上面将创建一个名为的列表var1
,其元素将在每个元素的最后有新行,因此要删除它们,请使用以下代码。在这里使用strip
Python 的功能。
var1 = list(map(lambda s: s.strip(), var1))
现在打印列表的所有元素var1
:
for element in var1:
print (element)
说明:正则表达式的解释很简单,使用re.findall
Python3 的函数并提到正则表达式来匹配says\s+[^(]*
意味着在下一次/第一次出现 ( 这里.