Ruby 红宝石分割在'=';但不是在'\=';

Ruby 红宝石分割在'=';但不是在'\=';,ruby,regex,split,Ruby,Regex,Split,在Ruby中:如何在“=”处拆分字符串,而不是在“\=”处拆分字符串? 例如: 使用string.split(“=”)我在数组中得到三个条目。您可以在 (?<!\)= (? (?只需使用负回溯检查\符号前是否没有= string = "abc = def \\= ghi" print string.split(/(?<!\\)=/).flatten 要准确获得所需的输出,还可以使用空格: string.split(" = ") :-)“abc=def\=ghi”与“abc=de

在Ruby中:如何在“=”处拆分字符串,而不是在“\=”处拆分字符串? 例如:

使用string.split(“=”)我在数组中得到三个条目。

您可以在

(?<!\)=
(?

(?只需使用负回溯检查
\
符号前是否没有
=

string = "abc = def \\= ghi"
print string.split(/(?<!\\)=/).flatten
要准确获得所需的输出,还可以使用空格:

string.split(" = ")

:-)

“abc=def\=ghi”
与“abc=def=ghi”相同
。因此,没有任何东西可以区分
=
\=
,您所问的是不可能的。进一步说@sawa的观点,如果您希望所需数组的字符串和第二个元素都包含
\=
,而不是
\=
,请编辑您的问题进行更正。如果您选择将问题放低到文字上,期待大量的否决票。
。此处不需要展平。
.split
的结果已经是一个平面数组。该示例包含空格,但没有提到需要空格。如果代码是作为代码片段生成的,那么看到
abc=def
就不常见了。您是正确的ect,人们不会期望空格,但在他的示例中,它们不是数组中拆分字符串的一部分。这就是为什么会出现微笑。事实上,我没有想到空格…:)
["abc ", " def \\= ghi"]
string.split(" = ")