【发布时间】:2013-01-04 17:44:06
【问题描述】:
我正在使用 Ruby 进行一些文本处理。
对于我正在处理的一些文本:单引号不应该在双引号之外。所以,我想制作一个匹配单引号字符串的正则表达式,但不是那些已经用双引号括起来的字符串,所以我可以用脚本交换它们。有意义吗?
因此,在以下示例中,句子 #1、2、4、6 和 8 是可以的,而句子 #3、5 和 7 包含错误嵌套的单引号,我想交换:
- 这是一个句子。
- 这是一个“带双引号”的句子。
- 这是一个句子'带单引号'
- 这是一个带有“嵌套单引号”的句子。有时会有“不止一个”。”
- 这是一个带有“嵌套双引号”的句子 '。有时有“不止一个”。'
- 这是一个句子“没有双'右引号',这在本文中很常见。
- 不幸的是,这是一个没有单个“结束引号”的句子'也很常见。
- 但是,我不想匹配撇号。那行不通。
(粗体表示我想用 RegEx 进行匹配,所以我可以交换引号。)
重点:我试图引用已在其中引用的扩展段落。这需要我把他们的双打换成单打。
这可能吗?我已经尝试了几个小时,但我似乎无法得到它。任何帮助表示赞赏。
【问题讨论】:
-
到底要换什么?即,您希望转换后 3、5 和 7 的输出是什么?
-
在语法上单引号和撇号有什么区别?我看不出你打算如何区分它们。
-
会有多个嵌套的双引号字符串吗?
-
在没有人脑的情况下区分 type5 更难。你有更严格的标准吗?
-
一句话里有几个引号怎么样?会不会有类似的东西:
this 'is' a 'string'?