【发布时间】:2021-01-26 16:20:50
【问题描述】:
我必须提取电子邮件中包含的所有匹配字符串。
格式很简单,8位,但是当我测试它时,它会跳过最后一个匹配的字符串。
模板电子邮件可以是电子邮件:Hi 12345678 87654321
它返回参考[] = ('12345678')
public static String[] identificarsrNumber(Messaging.InboundEmail email){
String[] reference= new List<String>();
if (email.plainTextBody != null) {
String[] splitemail = email.plainTextBody.split(' ');
Pattern pt = Pattern.compile('^\\d{8}$');
for (String s : splitemail) {
Matcher m = pt.matcher(s);
if (m.find()) {
reference.add(s);
}
}
}
return reference;
}
【问题讨论】:
-
String[] reference= new List<String>();java.util.List,它将无法编译 -
你在 Java 中的代码works as expected 修正了几个错别字。
-
@OHGODSPIDERS 是它的顶点,是 java 和 sql 之间的转换器,是的,它确实可以编译。
-
@WiktorStribiżew 很抱歉错别字,整个方法是西班牙语,当您将输入电子邮件转换为纯文本时它不起作用
-
不知道它与什么有关,也许您的数据不是您显示的。如果可以有 Unicode 空格,请尝试使用 Unicode 空白模式进行拆分,而不仅仅是常规的 ASCII 空格,请尝试
email.plainTextBody.split("(?U)\\s+")
标签: java regex email salesforce apex