Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式-括号内仅匹配分隔符_Regex - Fatal编程技术网

Regex 正则表达式-括号内仅匹配分隔符

Regex 正则表达式-括号内仅匹配分隔符,regex,Regex,我有一个解析CSV文件的程序。不幸的是,如果分隔符在括号内,程序无法处理。现在,我想找到一个正则表达式,如果分隔符在括号内,它可以找到分隔符 Name;Zip;Comment Smith,12345;"Weird comment with ; inside" 下面的正则表达式返回整个注释字段,但我只希望;括号内的字符 ("[^;]*;[^;]*") 你可以试试这样的正则表达式 r\".*(;).*"\ 在这种情况下,正则表达式将与整个注释匹配。但是,捕获组1(括号内的部分)将与匹配在双引号

我有一个解析CSV文件的程序。不幸的是,如果分隔符在括号内,程序无法处理。现在,我想找到一个正则表达式,如果分隔符在括号内,它可以找到分隔符

Name;Zip;Comment
Smith,12345;"Weird comment with ; inside"
下面的正则表达式返回整个注释字段,但我只希望;括号内的字符

("[^;]*;[^;]*")

你可以试试这样的正则表达式

r\".*(;).*"\

在这种情况下,正则表达式将与整个注释匹配。但是,捕获组1(括号内的部分)将与
匹配在双引号内。

您应该使用以下正则表达式捕获整个注释,并使用捕获的组替换分号:

(".*?)(;\s)(.*?")


请参见

很遗憾,我无法指定应使用哪个捕获组。正则表达式的整个匹配将替换为我选择的字符。
input        >>  Name;Zip;Comment
                 Smith,12345;"Weird comment with ; inside"
match        >>  (".*?)(;\s)(.*?")
replace with >>  $1$3
output       >>  Name;Zip;Comment
                 Smith,12345;"Weird comment with inside"