检查string1是否在同一行的string2之前

时间:2015-07-23 15:26:42

标签: ruby regex

我正在尝试匹配c#/ sql代码中的注释行。 CREATE可能会在/*之前或之后出现line6 = " CREATE /* this is ACTIVE line 6" line5 = " charlie /* CREATE inside this is comment 5" 。它们可以在同一条线上。

regex1 = /\/\*||\-\-/
if (line1 =~ regex1) then puts "Match comment___" + line6 else puts '____' end
if (line1 =~ regex1) then puts "Match comment___" + line5 else puts '____' end

在第一种情况下,它将是一条活动线;在第二个,它将是一个评论。我可能可以做一些charindex,但也许有一种更简单的方式

Template.loginButton.helpers
    statusText: () ->
        console.log 'anybody there?'
        if Meteor.user() then "Déconnexion" else "Connexion"

1 个答案:

答案 0 :(得分:1)

使用正则表达式

r = /
    \/     # match forward slash
    \*     # match asterisk
    \s+    # match > 0 whitespace chars
    CREATE # match chars
    \b     # match word break (to avoid matching CREATED)
    /      # extended mode for regex def

你可以返回一个注释行数组:

[line6, line5].select { |l| l =~ r }
  #=> [" charlie /* CREATE  inside this is comment 5"]