在REGEX中选择引号但不是撇号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在REGEX中选择引号但不是撇号相关的知识,希望对你有一定的参考价值。

我想实现这个惊人的结果(我使用Ruby):

input:  "Joe can't tell between 'large' and large."   
output: "Joe can't tell between large and large."

摆脱引号而不是撇号 我怎么能以简单的方式做到这一点?

我失败的过度复杂的尝试:

 entry = test[0].gsub(/[[']*1]/, "")
答案

最简单的一个适合你的情况可能是这样的。

正则表达式:/s'|'s/并替换为space

Regex101 Demo


您也可以使用/(['"])([A-Za-z]+)1/并替换为2,即第二个被捕获的组。

Regex101 Demo

另一答案

这是一个演示答案的脚本:

x = "Joe can't tell between 'large' and large."
puts x.gsub(/'s|s'/, " ")
# Output: Joe can't tell between large and large.

要解码这个脚本的作用 - gsub / regex行说:

找到所有(一个撇号后跟一个空格'/ s)或(一个空格后跟一个撇号 s')并用空格替换它。

这留下了与空格不完整的撇号,这似乎只删除了OP试图删除的撇号。

另一答案

也许这个?

entry = test[0].gsub(/[^']/, "")

但它应该删除所有'

另一答案

这正是你正在寻找的,包括忽略发布的评论Students'的例子。

entry = test[0].gsub(/'(­[^s]+)'/,­ '1')

我没有设置ruby,但我确认这可以在这里工作:http://tryruby.org/levels/1/challenges/0

以下是regex101的示例:

https://regex101.com/r/aY8aJ3/1

以上是关于在REGEX中选择引号但不是撇号的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中,如何创建包含引号和撇号的 mySQL 选择查询?

iphone sdk,撇号显示为问号

撇号的 HTML 代码

使用 OpenXML 和 Regex 在 Word Docx 中查找和替换撇号(')的问题

如何在 PHP 中去除特殊的引号字符?

Java用'(撇号/单引号)和\(反斜杠)一起替换问题