Regex 正则表达式来选择除双引号内的字符以外的一些字符

Regex 正则表达式来选择除双引号内的字符以外的一些字符,regex,Regex,我有这样一句话: Number; Year; "43643-25262.123; ABC2322"; Project is supported by the Organization X ("No. 11AZD121"); adress; "12344;123131; 3859563";;; employees 如何编写一个正则表达式来选择分号(;),除了双引号(“)字段中的分号之外?因此,我希望正则表达式能够找到除”43643-25262.123中的分号之外的所有分号;ABC2322“和”1

我有这样一句话:

Number; Year; "43643-25262.123; ABC2322"; Project is supported by the Organization X ("No. 11AZD121"); adress; "12344;123131; 3859563";;; employees
如何编写一个正则表达式来选择分号(
),除了双引号(
)字段中的分号之外?因此,我希望正则表达式能够找到除
”43643-25262.123中的分号之外的所有分号;ABC2322“
”12344;123131; 3859563“

这应该行得通

input = Number; Year; "43643-25262.123; ABC2322"; Project is supported by the Organization X ("No. 11AZD121"); adress; "12344;123131; 3859563";;; employees

pattern= (!?)(“.*?”;*)

input.match(pattern)

//output Number; Year;  Project is supported by the Organization X (); adress;  employees
这应该行得通

input = Number; Year; "43643-25262.123; ABC2322"; Project is supported by the Organization X ("No. 11AZD121"); adress; "12344;123131; 3859563";;; employees

pattern= (!?)(“.*?”;*)

input.match(pattern)

//output Number; Year;  Project is supported by the Organization X (); adress;  employees

在我看来,您拥有的是使用分号而不是逗号的CSV(逗号分隔值)字符串。我想看看您选择的编程语言中是否有可以处理CSV文件并将分号作为分隔符处理的现有代码

例如,在Perl的模块中,您可以调用
->sep_set
模块来定义要使用的分隔符


处理这些分隔符和引用是一个已经很好地解决了的常见问题,而且也充满了奇怪的情况。如果你能找到一个现有的工具来为你做这件事,而不是试图编一个正则表达式来做这件事,那可能是最安全的。

在我看来,你拥有的是CSV(逗号分隔值)使用分号而不是逗号的字符串。我想看看在您选择的编程语言中是否有可以用来处理CSV文件并将分号作为分隔符处理的现有代码

例如,在Perl的模块中,您可以调用
->sep_set
模块来定义要使用的分隔符


处理这些分隔符和引用是一个已经很好地解决了的常见问题,而且也充满了奇怪的角落案例。如果你能找到一个现有的工具来为你做这件事,而不是试图编一个正则表达式来做这件事,那可能是最安全的。

假设引用是平衡的和不可替换的。@anubhava谢谢你,但是你的道具当我在Visual Studio代码(!?)(“*?”;*)中测试osed regexp时,它不起作用。假设引号是平衡的且未被替换的,这应该可以起作用。@anubhava谢谢你,但当我在Visual Studio代码(!?)(“*?”;*)中测试它时,你建议的regexp不起作用这应该行得通谢谢你,你用过什么编程语言?这只是一个伪代码不是我用过的任何语言我在Visual Studio代码中用过它,但它不起作用在regex101上用过它对我有效吗?你用过什么编程语言?这只是一个伪code不是任何语言,我试过正则表达式,它可以工作,我只是在Visual Studio代码中试过,但它不起作用,在正则表达式101上试过,它对我起作用,谢谢你的回答,是的,这应该是一个逗号分隔的文件,但是没有使用逗号,而是使用了分号。但真正的问题是,有一些随机的e每个记录中的xtra分号给了我很多时间,现在我正试图用这个regexp方法来解决这个问题谢谢你的回答,是的,这应该是一个逗号分隔的文件,但是使用了分号而不是逗号。但真正的问题是,每个记录中都有一些随机的额外分号,这给了我很多时间我现在正试图用这个regexp方法来解决这个问题