正则表达式在第一个斜杠之前获取所有内容,除了引号之间

时间:2018-08-02 20:42:42

标签: regex

我希望创建一个Regex来提取第一个斜杠之前的所有内容,除非它是单引号或双引号。目前,我有:

^(.*?)/

现在,我很茫然。基于下面的不同文本,我只需要下面的加粗部分:

文本

abc,def,ghi,jkl,mno / 123
/ abc,def,ghi,jkl,mno 123
abc, / def,“ / ghi”,jkl,mno / 123
abc,def,“ / ghi”,jkl,mno / 123
abc,def,'/ ghi',jkl,mno / 123

2 个答案:

答案 0 :(得分:1)

您可以使用

^(?:[^/"']|"[^"]*"|'[^']*')+

请参见regex demo

详细信息

  • ^-字符串的开头
  • (?:[^/"']|"[^"]*"|'[^']*')+-出现1次或以上
    • [^/"']-除/"'以外的任何字符
    • |-或
    • "[^"]*"-一个",除了"以外的任何0+字符,然后是"
    • |-或
    • '[^']*'-一个',除了'以外的任何0+字符,然后是'

答案 1 :(得分:0)

怎么样:

^(.*?)\/(?=([^\"\']*\"[^\"\']*\")*[^\"\']*$)

See Regex Demo

使用第1组