Java 使用正则表达式从字符串中提取两个单词

Java 使用正则表达式从字符串中提取两个单词,java,regex,Java,Regex,我试着看了几个例子,但不知道如何或怎样最好地从如下字符串中获取两个值: setEditMode | Ändringsläge 我可以得到第一个值,但如何得到“|”之后的第二个值 我尝试过使用Pattern和Matcher,也尝试过使用split() java.lang.ArrayIndexOutOfBoundsException:1 在System.out中仅打印“line”时,我得到: archiveLoad

我试着看了几个例子,但不知道如何或怎样最好地从如下字符串中获取两个值:

setEditMode                                    | Ändringsläge
我可以得到第一个值,但如何得到“|”之后的第二个值

我尝试过使用Pattern和Matcher,也尝试过使用split()

java.lang.ArrayIndexOutOfBoundsException:1

在System.out中仅打印“line”时,我得到:

archiveLoad                                      | Loading archives
archiveLoadCount                                 | Archives uploaded:
archiveLoadStage                                 | Stage:
archiveLoadFilesCount                            | Files uploaded:
archiveLoadElapsedTime                           | Time elapsed:
archiveLoadInit                                  | Initialization
archiveLoadUndeletableIntervals                  | Loading undeletable intervals
archiveLoadDb                                    | Loading from database
archiveLoadDisk                                  | Loading from disk
archiveLoadProblemIntervals                      | Loading data about problems

这取决于您希望输出的方式,但可以使用以下方法轻松完成:

([a-zA-Zääääää]+[a-zA-Zääää]+)

这将匹配所有字母,包括åäö/ÄÖ。将0-9添加到正则表达式中,以匹配数字:

([0-9a-zA-Zåäääää]+[0-9a-zA-Zåäää]+)


实例:

您可以使用split,如您在注释中所示

String line = "aaaa |  aaaa";
String[] values = line.split("\\|");
String v1 = values[0];
String v2 = values[1];

您还可以使用一个正则表达式,该正则表达式可以捕获除
|
([^ |]+)|([^ |]+)

请提供一些您尝试过的代码并提问。这太宽了,无法猜测,asnwer.System.out.println(line.split(“\\\\”)[0]);请尝试
split(“\\s+\\\\\\\s+”)
…您可以添加所需输出的示例吗?在示例的第一行中,我想要:“archiveLoad”和“Loading archives”以及所有其他行的相同模式。谢谢,当我在regex测试仪中测试它时,它可以工作,但在我的java代码中不能。为什么它不起作用?系统输出打印LN(行分割(([0-9a-zA-Zåäääääää]+[0-9a-zA-Zåäääää]+)[0]);不幸的是,我不使用Java编写代码,也不能提供任何有用的建议。希望其他人能在这方面提供一些专业知识。您是否收到任何错误消息?谢谢您的回答,但我尝试了所有建议的答案,当我在java中尝试它们时,它们都不起作用。我已经修复了一个拼写错误。你和他们有什么问题?错误或无效结果?现在我已经完全修复了第一个示例。
String line = "aaaa |  aaaa";
String[] values = line.split("\\|");
String v1 = values[0];
String v2 = values[1];