正则表达式测试值是否为有效格式

时间:2017-03-09 08:42:14

标签: ruby regex

我有一项任务,我需要检查一个值是否正确引用了CSV列:

例:

  1. 没有引用 - 确定
  2. “带引号” - 确定
  3. “开场报价 - 不好
  4. 不当“引用” - 不好
  5. 收尾报价“ - 不好
  6. CSV标记如下错误:

    Illegal quoting in line 5. (CSV::MalformedCSVError)
    

    问题:如何使用单个正则表达式进行此操作?我需要为案例3-5标记错误。

    如果你知道如果CSV值有效,应该检查什么,请告诉我们。

    编辑:我在下面添加了2个方案/案例:

    1. 引用“引用”引号“ - 不好
    2. “引号”“引号内” - 不好
    3. 编辑:又增加了1个案例:

      1. “” - 确定

2 个答案:

答案 0 :(得分:1)

不考虑转义报价:

/^("[^"]*"|[^"]+)$/m

here

这意味着:

  • 行首
    • 1报价+除报价+ 1报价外的任何内容,或
    • 除引号外的任何内容(至少一个字符)
  • 行尾

答案 1 :(得分:1)

^"{1}.+"{1}$|^[^"]*$

这将匹配以一个引号开头和结尾的所有行,或者根本不包括引号的行。 demo

相关问题