处理字符串的Java正则表达式包含下一行
我有一篇这样的文章处理字符串的Java正则表达式包含下一行,java,regex,Java,Regex,我有一篇这样的文章 Customer Owned 03/26 04/25 0.00 Modem 调制解调器在下一行 现在我需要将数据写入电子表格,如下所示 客户拥有的调制解调器03/26 04/25 0.00 我写了一个正则表达式作为 ([a-zA-Z = ]*) ([[0-9]{2}/[0-9]{2} ]*) (-?[0-9]*\\.[0-9]+) 我得到的描述是“客户所有”,而不是“客户所有的调制解调器”。有没有办法通过正则表达式进行处理?以匹配换行符,您可以尝试\r\n 相应地更新正则
Customer Owned 03/26 04/25 0.00
Modem
调制解调器在下一行
现在我需要将数据写入电子表格,如下所示
客户拥有的调制解调器03/26 04/25 0.00
我写了一个正则表达式作为
([a-zA-Z = ]*) ([[0-9]{2}/[0-9]{2} ]*) (-?[0-9]*\\.[0-9]+)
我得到的描述是“客户所有”,而不是“客户所有的调制解调器”。有没有办法通过正则表达式进行处理?以匹配换行符,您可以尝试\r\n
相应地更新正则表达式以包含换行符以及其后的文本请将以下内容添加到正则表达式中。这将在所有平台上检测到一条线路的末端,并在最后一组中捕获以下线路。然后可以将组1和最后一个组连接在一起
(?:\n | \r | \n\r | \r\n)([a-zA-Z=]*)$
您可以尝试以下正则表达式:
([A-Za-z ]+)([^A-Za-z]+)[\r\n]*([A-Za-z]+)
并替换为:
\1\3 \2
下面是一个使用您的示例的示例。也许您可以对其进行第一次遍历,并去掉第一行和第二行之间的换行符?然后你的正则表达式将按你想要的方式工作。请在代码中说明你是如何使用它的,因为这将有助于确定你需要如何应用你的模式修饰符使它成为多行的。但是,即使这是多行的,您也没有子模式来捕获字符串小数部分之后的文本。向我们展示您使用的完整代码如果您的文本文件的结构与上面一样好,我强烈建议您编写简单的代码来断开字符串等来解析文件。regexp很好,但相对来说很难维护。使用简单字符串函数的解析器对任何可能最终继承您的代码的人来说都更容易理解。@Alanmore:好的。谢谢你的提示。