select 在 REGEX 中引号但不是撇号
select quotes but NOT apostrophes in 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]/, "")
也许是这个?
entry = test[0].gsub(/[^']/, "")
但它应该删除 所有 '
.
这是一个演示答案的脚本:
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 行说的是:
Find all (an apostrophe followed by a space '/s) or (a space
followed by an apostrophe \s') and replace it with space.
这使得不与空格相邻的撇号完好无损,这似乎只删除了 OP 试图删除的撇号。
最简单的情况可能是这样的。
正则表达式: /\s'|'\s/
并替换为 space
.
您也可以使用 /(['"])([A-Za-z]+)/
并替换为
即第二个捕获组。
这正是您要查找的内容,包括忽略已发布的评论 Students'
示例。
entry = test[0].gsub(/'([^\s]+)'/, '')
我没有 ruby 设置,但我确认这在此处有效:http://tryruby.org/levels/1/challenges/0
这是一个关于 regex101 的例子:
我想实现这个惊人的结果(我正在使用 Ruby):
input: "Joe can't tell between 'large' and large."
output: "Joe can't tell between large and large."
去掉引号但不去掉撇号
我怎样才能以简单的方式做到这一点?
我失败的过于复杂的尝试:
entry = test[0].gsub(/[[']*1]/, "")
也许是这个?
entry = test[0].gsub(/[^']/, "")
但它应该删除 所有 '
.
这是一个演示答案的脚本:
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 行说的是:
Find all (an apostrophe followed by a space '/s) or (a space followed by an apostrophe \s') and replace it with space.
这使得不与空格相邻的撇号完好无损,这似乎只删除了 OP 试图删除的撇号。
最简单的情况可能是这样的。
正则表达式: /\s'|'\s/
并替换为 space
.
您也可以使用 /(['"])([A-Za-z]+)/
并替换为 即第二个捕获组。
这正是您要查找的内容,包括忽略已发布的评论 Students'
示例。
entry = test[0].gsub(/'([^\s]+)'/, '')
我没有 ruby 设置,但我确认这在此处有效:http://tryruby.org/levels/1/challenges/0
这是一个关于 regex101 的例子: