【发布时间】:2013-02-17 09:03:05
【问题描述】:
我编写了一个 Java 类,它必须从包含换行符的字符串中提取元素。作为第一步,代码必须用换行符分割输入字符串并将结果放入数组中。除了在一种特定情况下,这一切都很好。我正在使用以下代码来执行拆分:
String lines[] = inputText.split("[\\r?\\n\\r]+");
我遇到的问题是以下行:
##INFO=<ID=DS,Number=0,Type=Flag,Description=""removed?"">"
结果是两行:
##INFO=<ID=DS,Number=0,Type=Flag,Description=""removed
"">"
它在问号上分裂。谁能指出我为什么会发生这种情况的正确方向?正则表达式内部没有“?”表示 0 或 1 次出现?这不是换行符分割的可接受方式吗?
【问题讨论】:
-
split('\\n')不起作用吗? -
?确实意味着 0 或 1 但不在 [] 组内,这意味着文字问号,因此你的奇怪结果
-
可以,但我还必须能够处理 Windows 样式的换行符。我以为我这样写正则表达式是安全的。但可能不会!
-
@BenShirley 您可以查看stackoverflow.com/questions/247059/… 以使其与平台无关?
-
[\n\r]+还不够吗?
标签: java regex string split newline