我有以下数据:
User ID Name Last Activity Date
-------------------- ------------------------------------------------------------ -----------------------
UserID1 UserName1 2016-05-31
UserID2 UserName2 2016-05-31
UserID3 UserName3 2016-05-31
...
使用RegEx捕获所有UserID,名称和活动日期的最佳方法是什么?
我目前有User ID\s+Name\s+Last Activity Date\s+[- \s]+(.*?)\s+(.*?)\s{6,}(.*)\s
,这可以捕获第一行但是如何重复这一行以获取所有其他行?
答案 0 :(得分:2)
请查看链接中的正则表达式:https://regex101.com/r/gN2cH2/2 从链接生成的python代码是。此正则表达式捕获除标题行之外的所有USerID,名称,活动日期。
import re
p = re.compile(ur'((UserID[0-9])\s+(UserName[0-9]+)\s+([0-9]{4}-[0-9]{2}-[0-9]{2}))')
test_str = u" User ID Name Last Activity Date \n -------------------- ------------------------------------------------------------ -----------------------\nUserID1 UserName1 2016-05-31\nUserID2 UserName2 2016-05-31\nUserID3 UserName3 2016-05-31"
re.findall(p, test_str)
您可以使用捕获paranthesis组来查找UserID,名称以及捕获和上次活动的值。