Regex 将标题拆分为单独的部分

Regex 将标题拆分为单独的部分,regex,Regex,我需要一个函数来拆分表单的字符串 2,9.1,《教父》(1972),(这是一条csv线) 致: 有什么好的正则表达式的想法吗 顺便说一句, 如果你知道一个好的正则表达式的创造者根据你提供的例子,这将是伟大的。 我对这个有点陌生 10倍 在谷歌呆了一段时间后,我发现:/,(?!(?:[^“,]|[^”],[^“])+”/。看起来很好 >>> '2,9.1,The Godfather (1972)'.split(/,(?!(?:[^",]|[^"],[^"])+")/) ["2",

我需要一个函数来拆分表单的字符串

2,9.1,《教父》(1972)
,(这是一条csv线)

致:

有什么好的正则表达式的想法吗

顺便说一句, 如果你知道一个好的正则表达式的创造者根据你提供的例子,这将是伟大的。 我对这个有点陌生


10倍

在谷歌呆了一段时间后,我发现:
/,(?!(?:[^“,]|[^”],[^“])+”/
。看起来很好

>>> '2,9.1,The Godfather (1972)'.split(/,(?!(?:[^",]|[^"],[^"])+")/)
["2", "9.1", "The Godfather (1972)"]

在谷歌呆了一段时间后,我发现:
/,(?!(?:[^“,]|[^”],[^“])+”/
。看起来很好

>>> '2,9.1,The Godfather (1972)'.split(/,(?!(?:[^",]|[^"],[^"])+")/)
["2", "9.1", "The Godfather (1972)"]

如果确定格式是静态的,则可以使用以下方法:

(\d+),(\d+\.\d+),(.*?) \((\d+)\)

但如果它可以包含更多信息,请使用真正的CSV解析器读取该行,然后使用
(.*?)\(\d+)
拆分
教父(1972)
。如果您确定格式是静态的,您可以使用以下方法:

(\d+),(\d+\.\d+),(.*?) \((\d+)\)

但是如果它可以包含更多的信息,请使用一个真正的CSV解析器来读取这行代码,然后使用
(.*?)(\d+)
拆分
教父(1972)
(\d+)CSV有很多死角,您的regexp方法可能会让您陷入痛苦的世界


例如,如果标题中有逗号,则标题将被双引号引用。这将破坏到目前为止给出的所有regexp。

CSV有很多极端情况,您的regexp方法可能会让您陷入痛苦的世界


例如,如果标题中有逗号,则标题将被双引号引用。这将破坏到目前为止给出的所有regexp。

我不建议使用regex分割csv文件,因为它不能很好地处理逗号转义。但话虽如此,使用最简单的解决方案如何

像这样一个最简单的正则表达式应该可以解决您的问题

'(.*?),(.*?),(.*?)\((\d+)\)'

我不建议使用正则表达式分割csv文件,因为它不能很好地处理逗号转义。但话虽如此,使用最简单的解决方案如何

像这样一个最简单的正则表达式应该可以解决您的问题

'(.*?),(.*?),(.*?)\((\d+)\)'
他希望《教父》和《1972》分开,他希望《教父》和《1972》分开。