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