我一直在使用百分比字符串文字来将字符串转换"one two three four\ five"
成数组。
%w(one two three four\ five)
返回:
["one", "two", "three", "four five"]
现在,我想动态地执行此操作,因此可以再使用文字。
我可以使用哪种正则表达式模式将上面的字符串转换为数组?
我正在寻找一个正则表达式模式,将其放入将"one two three four\ five"
返回的红宝石拆分方法["one", "two", "three", "four five"]
。
注意:我只想按未转义的空格进行分割,如上。因为将分隔它们的空格转义了,所以将四和五合并为同一字符串。
如果您的字符串没有转义序列,则可以使用拆分方法
.split(/(?<!\\)\s+/)
在这里,(?<!\\)\s+
匹配\s+
不带的1+个空格()\
。
如果您的字符串可能包含转义序列,则最好使用匹配方法,因为它更可靠:
.scan(/(?:[^\\\s]|\\.)+/)
参见Ruby演示。
它将匹配1个或多个字符,除了\
和空格(带有[^\\\s]
)和任何转义序列(与\\.
,反斜杠+除换行符以外的任何字符)匹配。
要摆脱\
符号,您将不得不使用gsub
后面的符号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句