我有一个以下格式的文本文件
======= 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
答案 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)
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+