正则表达式帮助以获取帐户详细信息

时间:2018-12-03 18:26:52

标签: regex notepad++ text-files

我有一个以下格式的文本文件

======= Account Info =======
email.example@gmail.com:examplepass
Subscription:sub Type
Expiration date:12/21/18
Country:US
Renew Charge:$14.99 + tax
DOB:8/18/73
Created By Athena
============================

======= Account Info =======
email.emaple2@yahoo.com:passExample00
Subscription:sub Type
Expiration date:12/5/18
Country:US
Renew Charge:$14.99 + tax
DOB:8/5/74
Created By Athena
============================

如何使用正则表达式来获取电子邮件:以这种格式传递

email.example@gmail.com:examplepass
email.emaple2@yahoo.com:passExample00

3 个答案:

答案 0 :(得分:1)

您对此有任何尝试吗?

您可以尝试:

^email:\w+$

根据您的修改,更全面的正则表达式将是

(^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}):\w+

答案 1 :(得分:0)

根据您的评论,您需要一个不受限制的模式。试试这些:

1)选择“帐户信息”行和“订阅”行之间的所有内容。您需要选中“。匹配换行符”复选框,此功能才能正常工作。

(?<=Account Info =======\r\n)(.+?)(?=\r\nSubscription)

这对“帐户信息=======”进行了积极的查找,对“订阅”进行了积极的提前查找,并盲目地选择了两者之间的所有内容(换行符除外)。

[注意:Notepad ++显然不允许可变长度的查找,因此您需要指定帐户信息的完整字符串。如果您使用的是基于Unix的系统,则可能需要摆脱“ \ r” s

缺点:如果您要查找的两行之间没有电子邮件和密码,则可能失败。

2)选择@:一行中的所有内容

^.+?@.+?:.+

缺点:如果您碰巧同时有@:的另一行,则可能会失败

答案 2 :(得分:0)

  • Ctrl + F
  • 查找内容:XSSFDrawing pat = sheet.getDrawingPatriarch(); // @SuppressWarnings("rawtypes") if (pat != null){ List<XSSFShape> children = pat.getShapes(); Iterator<XSSFShape> it = children.iterator(); while(it.hasNext()) { XSSFShape shape = (XSSFShape)it.next(); if (shape instanceof XSSFSimpleShape){ XSSFSimpleShape textbox = (XSSFSimpleShape)shape; String str = textbox.getText(); System.out.println("String: " + str); System.out.println("String length: " + str.length()); }; } }
  • 检查环绕
  • 检查正则表达式
  • 在文档中搜索

说明:

\S+@\S+

enter image description here