regex - 编写与java兼容的正则表达式
问题描述
我无法解决一种情况:以下是示例数据:
5 美联社 7122784
6 APB +5115400852
7 猿 ABC.XYZ@LOM.COM
8 APE LAX*ABC.XYZ@LOM.COM
9 APE ERT-EDF@UK.TR.EDS
APE 是一个标识符,它告诉我们它是一个电子邮件 ID 字段。
我们必须根据以下规则选择电子邮件 ID:
- 如果存在 LAX*,则在 LAX* 之后获取值并获取它。即 ABC.XYZ@LOM.COM
- 如果带有 LAX* 的电子邮件 ID 不在数据中(8 APE LAX*ABC.XYZ@LOM.COM - 记录不存在)然后选择所有电子邮件 ID,即 ABC.XYZ@LOM.COM 和 ERT-EDF@UK。 TR.EDS。
有人可以帮我吗?
谢谢
解决方案
我在想创建一个如下的Java代码:
导入 java.util.regex.Matcher;
导入 java.util.regex.Pattern;
要扫描的字符串以查找模式。
String regex = "(APE\\sPAX\\*|APE\\s)(?<email>.*)\\s*";
String string = "5 AP 7122784\n"
+ "6 APB +5115400852\n"
+ "7 APE ABC.XYZ@LOM.COM\n"
+ "8 APE PAX*ABC.XYZ@LOM.COM\n"
+ "9 APE ERT-EDF@UK.TR.EDS";
Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}`
并在 Java 中使用 if else 捕获组。
上述 Java 代码的屏幕截图:
推荐阅读
- python-3.x - 如何在机器人框架中启动具有麦克风和摄像头权限的浏览器?
- node.js - Nodemon app cannot find module when restarting
- javascript - 如何确定发生鼠标悬停事件的数组的哪个索引?
- azure - 通过 Azure DevOps 将 SAS 令牌部署到 Azure Key Vault
- python - Checking row-by-row if a value in one column is present as a substring of a value in another column, appending the string if the boolean value = False
- python-3.x - finding a file using general location in a python script
- python - Can't deal with path
- r - 如何计算布朗桥运动模型的面积?
- python - How to Change x-axis to logarithmic in PLOTLY histogram
- c# - 如何在 .NetCore 中使用 GetWebRequest 方法