正则表达式解析用逗号分隔的引号内

时间:2018-04-29 19:24:30

标签: php regex

我有一个格式如下的文件:

"A","B","C - "G"","D,F",5

这是我试图获得的匹配:

|A|B|C - "G"|D,F|5|

我需要在引号内添加内容,这是我使用的表达式:(?:"([^,]*)")。但是当引号内有逗号时会出现问题。是否可以使用正则表达式来实现这一点,或者我应该将原始字符串更改为以下内容:

"A"@"B"@"C - "G""@"D,F"

2 个答案:

答案 0 :(得分:1)

检查出来:

    <p>Company: <select name="company" id="company">
    {{#each companies}}
        <option>{{this}}</option>
    {{/each}}
    </select>

Live demo

PHP代码:

(?|"((?:(?!",).)*)"|\h*([^,"]+))

答案 1 :(得分:0)

global

将匹配以下内容:

"([^,]*|([^,"]*,?)*)"|([0-9]+)

我已更新答案,因为您已更改了要求。

Live Demo on Regex101