如何在CSV中查找和替换元素

用户3839012

如何查找和替换"West"以下CSV文件示例中的模式(例如引号)

"LastName","FirstName","","","890","","6G","","S "West" AVENUE","","CITY","ZIP"
锡人

您不能使用CSV类读取此内容,因为它是格式错误的CSV字符串。有时发生这种情况是因为无论生成它的人都不知道他们在做什么:

require 'csv'
foo = '"LastName","FirstName","","","890","","6G","","S "West" AVENUE","","CITY","ZIP"'
arr_of_arrs = CSV.parse(foo)

然后导致异常:

Missing or stray quote in line 1 (CSV::MalformedCSVError)

相反,要解决此问题,您必须先修复数据,然后解析。这是一个起点:

/(?<=\s)("[^"]+")(?=\s)/

http://rubular.com/r/sWEkx07Zyo

模式在引号之间寻找东西,并用前导和尾随空格括起来。不会捕获空格。

以下是适用于此特定示例的一些代码:

foo = '"LastName","FirstName","","","890","","6G","","S "West" AVENUE","","CITY","ZIP"'

REGEX = /(?<=\s)("[^"]+")(?=\s)/

word = foo[REGEX]
foo[REGEX] = word[1..-2]
puts foo
# >> "LastName","FirstName","","","890","","6G","","S West AVENUE","","CITY","ZIP"

此时可以使用CSV:

require 'csv'
arr_of_arrs = CSV.parse(foo)
# => [["LastName",
#      "FirstName",
#      "",
#      "",
#      "890",
#      "",
#      "6G",
#      "",
#      "S West AVENUE",
#      "",
#      "CITY",
#      "ZIP"]]

这些东西可能会令人困惑:

word = foo[REGEX]
foo[REGEX] = word[1..-2]

foo\[...\]是String类的一部分,并且是查找和替换字符串中字符的一种很好的便捷方法。


可以使CSV解析器对嵌入的引号感到满意,因此,如果扔掉它们太繁琐,则可以执行以下操作:

word = foo[REGEX]
foo[REGEX] = '"%s"' % word

require 'csv'
arr_of_arrs = CSV.parse(foo)
# => [["LastName",
#      "FirstName",
#      "",
#      "",
#      "890",
#      "",
#      "6G",
#      "",
#      "S \"West\" AVENUE",
#      "",
#      "CITY",
#      "ZIP"]]

它只是按照CSV规范的规则运行,并在字符串周围使用双引号双引号。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在numpy数组中查找和替换特定元素?

来自分类Dev

如何在vim中查找和替换

来自分类Dev

如何在C中数组中的元素中查找和替换文本文件中的位置?

来自分类Dev

如何从 2 个 csv 文件中查找和替换单词

来自分类Dev

如何在XML中查找和替换属性值

来自分类Dev

如何在Xcode中查找和替换为通配符编号

来自分类Dev

如何在Android的TextView中查找和替换字符?

来自分类Dev

如何在Jupyter Lab中查找和替换

来自分类Dev

如何在PowerShell中查找和替换文件内容?

来自分类Dev

如何在Excel中查找和替换字符“ *”

来自分类Dev

如何在Shell脚本中查找和替换文本

来自分类Dev

如何在Excel中查找和替换多个值?

来自分类Dev

如何在字符串中查找和替换'['?

来自分类Dev

如何在Java中自动查找和替换

来自分类Dev

如何在表中查找、替换和相乘

来自分类Dev

如何在数组中查找和写下重复的元素?

来自分类Dev

如何在R中“查找并替换全部”?

来自分类Dev

如何在“查找并替换”中反转选择?

来自分类Dev

如何使用JavaScript查找和替换HTML DOM元素中的字符串

来自分类Dev

如何在R中的数据框的特定列中查找和替换某些关键字?

来自分类Dev

jQuery查找和替换元素中的关键字

来自分类Dev

使用jQuery在HTML中查找和替换元素

来自分类Dev

查找和替换多维列表中的元素(python)

来自分类Dev

TextPad Regex:如何在尖括号中查找和替换字符?

来自分类Dev

RegEx-如何在大文本文件中查找和替换单词?

来自分类Dev

如何在文本文件C ++中查找和替换一行数据

来自分类Dev

如何在文本文件中查找和替换多行?

来自分类Dev

如何在R中的两个数据框之间查找和替换值

来自分类Dev

如何在R的一列的整数中查找和替换小数?

Related 相关文章

  1. 1

    如何在numpy数组中查找和替换特定元素?

  2. 2

    如何在vim中查找和替换

  3. 3

    如何在C中数组中的元素中查找和替换文本文件中的位置?

  4. 4

    如何从 2 个 csv 文件中查找和替换单词

  5. 5

    如何在XML中查找和替换属性值

  6. 6

    如何在Xcode中查找和替换为通配符编号

  7. 7

    如何在Android的TextView中查找和替换字符?

  8. 8

    如何在Jupyter Lab中查找和替换

  9. 9

    如何在PowerShell中查找和替换文件内容?

  10. 10

    如何在Excel中查找和替换字符“ *”

  11. 11

    如何在Shell脚本中查找和替换文本

  12. 12

    如何在Excel中查找和替换多个值?

  13. 13

    如何在字符串中查找和替换'['?

  14. 14

    如何在Java中自动查找和替换

  15. 15

    如何在表中查找、替换和相乘

  16. 16

    如何在数组中查找和写下重复的元素?

  17. 17

    如何在R中“查找并替换全部”?

  18. 18

    如何在“查找并替换”中反转选择?

  19. 19

    如何使用JavaScript查找和替换HTML DOM元素中的字符串

  20. 20

    如何在R中的数据框的特定列中查找和替换某些关键字?

  21. 21

    jQuery查找和替换元素中的关键字

  22. 22

    使用jQuery在HTML中查找和替换元素

  23. 23

    查找和替换多维列表中的元素(python)

  24. 24

    TextPad Regex:如何在尖括号中查找和替换字符?

  25. 25

    RegEx-如何在大文本文件中查找和替换单词?

  26. 26

    如何在文本文件C ++中查找和替换一行数据

  27. 27

    如何在文本文件中查找和替换多行?

  28. 28

    如何在R中的两个数据框之间查找和替换值

  29. 29

    如何在R的一列的整数中查找和替换小数?

热门标签

归档