我尝试仅从下面的示例中捕获案例b和d(即。END
应该是一行中的唯一单词(或者至少是不是较长单词的一部分,并且END应该在开头line(不一定是^,可以从第2列开始,case \ i。)
在一个正则表达式中我无法将所有这些组合在一起,我可以在正则表达式中使用超过1个标志吗?在这个正则表达式中我也需要这个OR。
谢谢大家。
中号
regexDrop = /String01|String2|\AEND/i #END\n/i
a = "the long END not begin of line"
b = "ENd" # <@><< need this one
c = "END MORE WORDs"
d =" EnD" # <@><< need this one
if a =~ regexDrop then puts "a__Match: " + a else puts 'a_' end
if b =~ regexDrop then puts "b__Match: " + b else puts 'b_' end
if c =~ regexDrop then puts "c__Match: " + c else puts 'c_' end
if d =~ regexDrop then puts "d__Match: " + d else puts 'd_' end
## \w Matches word characters.
## \A Matches beginning of string. (could be not column 1)
答案 0 :(得分:1)
请注意\A
是一个锚(一种内置的lookehind,或“零宽度断言”),它匹配整个字符串的开头。\w
是一个简写类匹配字母,数字和下划线(字符)。
根据您的描述以及示例输入和预期输出判断,我认为您只是在字符串中的任何位置查找END
作为整个单词并且不区分大小写。
您可以将实例与
匹配regexDrop = /String01|String2|\bEND\b/i
这是demo
输出:
a__Match: the long END not begin of line
b__Match: ENd
c__Match: END MORE WORDs
d__Match: EnD