当前位置:  开发笔记 > 编程语言 > 正文

使用正则表达式替换Ruby中引号中的所有空格

如何解决《使用正则表达式替换Ruby中引号中的所有空格》经验,为你挑选了1个好方法。

我正在尝试编写一个正则表达式来替换所有未包含在引号中的空格,所以这样的事情:

a = 4, b = 2, c = "space here"

会回来这个:

a=4,b=2,c="space here"

我花了一些时间搜索这个网站,我发现了一个类似的q/a(用空格分割一个字符串 - 保留引用的子串 - 在Python中),它将用一个可以在之后重新替换的标记替换引号内的所有空格擦拭所有其他空间...但我希望有一种更清洁的方式.



1> Daniel Spiew..:

值得注意的是,任何正则表达式解决方案都会在以下情况下失败:

a = 4, b = 2, c = "space" here"

虽然你可以构建一个regexp来专门处理三引用的情况,但是你无法解决一般意义上的问题.这是简单DFA的数学上可证明的限制,其中正则表达式是直接表示.要执行任何严格的大括号/引号匹配,您将需要更强大的下推自动机,通常采用文本解析器库(ANTLR,Bison,Parsec)的形式.

话虽如此,听起来正则表达式应该足以满足您的需求.请注意这些限制.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有