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];