Regex 如何使用正则表达式拆分多分隔字符串以创建配置单元表?
我正在尝试使用多分隔符创建配置单元表(我无法在配置单元中使用多分隔符serde,因为我们需要更新jar文件),例如,我想使用两个字符分隔符拆分以下字符串Regex 如何使用正则表达式拆分多分隔字符串以创建配置单元表?,regex,split,Regex,Split,我正在尝试使用多分隔符创建配置单元表(我无法在配置单元中使用多分隔符serde,因为我们需要更新jar文件),例如,我想使用两个字符分隔符拆分以下字符串。$: 预期的结果是: 1234 | CSI | MAN # NO | MANN |1212 | N 当我尝试#$时,结果是 1234 | CSI | MAN | NO | MANN |1212 | N 如何使用两个字符分隔符拆分字符串?尝试以下操作:(.*?)\$(.*?)\$(.*?)\$(.*?)\$(.*?)\$(.*?)\$(.*?
。$
:
预期的结果是:
1234 | CSI | MAN # NO | MANN |1212 | N
当我尝试#$
时,结果是
1234 | CSI | MAN | NO | MANN |1212 | N
如何使用两个字符分隔符拆分字符串?尝试以下操作:(.*?)\$(.*?)\$(.*?)\$(.*?)\$(.*?)\$(.*?)\$(.*?)\$(.*)
见:
但正如@Barmar所说,通过
\$
进行拆分要容易得多。我认为这会满足您的要求:(.+?)(?:\$)
不需要使用正则表达式。只需使用文本字符串
#$
作为分隔符来拆分它。您是否阅读了关于[]
在正则表达式中的含义的文档?每天我都会看到一个新的regexp用户,他认为这是用于分组的。我不明白为什么会发生这么多[#$]
与#
或$
匹配,但不作为序列匹配。这就是(#$)
的用途。您使用的是什么语言?只需转义$
,\$
,请参阅谢谢您的回答。我也尝试过(#$)但没有成功,我使用的是escape#\$
。
1234 | CSI | MAN | NO | MANN |1212 | N