我想创建一个正则表达式来提取第一个斜杠之前的所有内容,除非它是单引号或双引号.目前,我有:
^(.*?)/
现在,我迷失了.根据下面的不同文本,我只想要下面的粗体部分:
文本
abc,def,ghi,jkl,mno / 123
/ abc,mno 123
abc,/ def,“/ ghi”,mno / 123
abc,’/ ghi’,mno / 123
解决方法
你可以用
^(?:[^/"']|"[^"]*"|'[^']*')+
细节
> ^ – 字符串的开头
>(?:[^ /“’] |”[^“] *”|'[^’] *’) – 1次或多次出现
> [^ /“’] – 除/之外的任何字符,”和“> | – 要么>“[^”] *“ – a”,除“之外的任何0个字符,然后”> | – 要么>'[^’] *’ – a’,除了’之外的任何0个字符,然后’