【发布时间】:2023-04-06 12:00:01
【问题描述】:
我需要用“|”分割一个字符串作为分隔符,可以使用前面的“?”进行转义,在这种情况下,不应将其视为分隔符。 我还想在结果中保留空字符串,其中有多个分隔符彼此跟随,中间没有任何东西 - 我实际上对这部分有问题。
几个例子:
aaa|bbb|ccc
Result:
aaa
bbb
ccc
aaa?|bbb|ccc
Result:
aaa?|bbb
ccc
aaa?|bbb||ccc|||ddd
Result:
aaa?bbb
<empty string>
ccc
<empty string>
<empty string>
ddd
我正在使用下面的正则表达式,它在转义分隔符的同时正确拆分字符串,但在“||”的情况下它会丢弃所有空字符串。我正在使用 Pattern/Matcher 和 Java。
([^?\\|]|\\?.)+
任何帮助表示赞赏。
【问题讨论】:
-
可以使用前面的“?”进行转义??.. 你确定吗 '?'用于转义?
-
?在正则表达式中具有特殊含义,您的输出也证明了这一点。它没有逃脱
-
我的意思是如果“?”在分隔符之前,然后它不会像实际的分隔符一样对待。 IE。 “?|”不应将其视为分隔符,而“|”应该。 S抱歉,可能解释错了。
-
这里没有模式。不要使用正则表达式