Ruby正则表达式如何排除带引号的匹配

时间:2018-09-07 21:39:02

标签: ruby regex

我面临着一个新的挑战,即如何从示例字符串中仅选择单个单词患者,因此,如果它是单引号,并且可能的话,则需要忽略它。它也只需是单词,并且已经通过\b开关解决了。我几乎可以在rubular.com上进行所有尝试。你认为这可行吗Best.M

s = 'alpha \'patient\' #1 literal  PATIENT  and As  patieNT and patientXX '
regex=/\bpatient\b/i

regex =/(?<!['"])\bpatient\b(?!['"])/  ##!!!!  solved (c)  emsimpson92  

puts s.scan(regex)    # select only PATIENT only without qoutes

更新:我利用当下的热点来解决另一种情况:当正则表达式单词以As(但有1个以上的空格)开头时,如何跳过大小写,如何添加{{1 }}在我的第一部分中,我尝试了1 ore more space,但在这里不起作用:   \s+ ##`具有1个以上空格的AS

1 个答案:

答案 0 :(得分:2)

这应该为您提供所需的内容。 (?<!['"])patient(?!['"])

Demo