ruby中的一个脚本,用于查找“的所有实例”&引用&引用;并替换为“&引用&引用&引用;
我有一个问题,我需要用两个双引号替换文本周围的一个双引号。采样线在下面 “1”,“未知”,“未知”,“未知”,“假”,“1077.36”,“132”,“8.1618”,“97”,“483”,“1”,“51”,“2010-06-17 20:58:00”,“2013-12-04 12:05:00”,“101”,“白橡树”,“0”,“0”,“1”,“1” 例如,在第一个逗号之前,我想知道括号中的内容。(“1”)我正在使用的脚本如下所示ruby中的一个脚本,用于查找“的所有实例”&引用&引用;并替换为“&引用&引用&引用;,ruby,regex,string,replace,Ruby,Regex,String,Replace,我有一个问题,我需要用两个双引号替换文本周围的一个双引号。采样线在下面 “1”,“未知”,“未知”,“未知”,“假”,“1077.36”,“132”,“8.1618”,“97”,“483”,“1”,“51”,“2010-06-17 20:58:00”,“2013-12-04 12:05:00”,“101”,“白橡树”,“0”,“0”,“1”,“1” 例如,在第一个逗号之前,我想知道括号中的内容。(“1”)我正在使用的脚本如下所示 file_names = ['test.csv'] file_n
file_names = ['test.csv']
file_names.each do |file_name|
text = File.read(file_name)
File.write(file_name, text.gsub(/"/, "\"\""))
end
如果mt regex看起来像这样/“{1}/,它将拾取每个双引号,因此这似乎也不起作用
非常感谢您的帮助。谢谢。如果您不想在单个regexp gsub中进行替换,您可以先用不同的东西替换两个双引号(例如,永不出现的utf-8符号),然后将一个双引号替换为两个双引号,最后将特殊字符再次替换为两个双引号。如果您不想在单个regexp gsub中进行替换,可以先将两个双引号替换为其他符号(例如,永不出现的utf-8符号),然后将一个双引号替换为两个双引号,最后将特殊字符再次替换为两个双引号。如果您不想在单个regexp gsub中进行替换,可以先将两个双引号替换为其他符号(例如,永不出现的utf-8符号),然后将一个双引号替换为两个双引号,最后将特殊字符再次替换为两个双引号。如果您不想在单个regexp gsub中进行替换,可以先将两个双引号替换为其他符号(例如,永不出现的utf-8符号),然后将一个双引号替换为两个双引号,最后将特殊字符再次替换为两个双引号。如果我理解正确,您希望将
“…”
的任何实例替换为“…”“
,但前提是,…
两边都有一个双引号。您的一些值的两边已经有两个双引号,应该保持不变。例如,“未知”
应保持为“未知”
,而不应变为“未知”
我假设您的“示例行”是一个单字符串,也就是说,它应该用引号括起来以声明为字符串,就像我在代码中做的那样——我用单引号括起来以避免大量双引号转义
line = '"1",""Unknown"","""","""",""Unknown"","""",""Unknown"","""","False","1077.36","132","8.1618","97","483","1","51","2010-06-17 20:58:00","2013-12-04 12:05:00","101",""White Oak"","0","0","1","1"'
line.gsub(/(?<!")"(?!")/, '""')
我使用的正则表达式使用负的lookbehind和lookahead来识别那些没有前面或后面有另一个双引号的双引号,并用两个双引号替换它们
line = '"1",""Unknown"","""","""",""Unknown"","""",""Unknown"","""","False","1077.36","132","8.1618","97","483","1","51","2010-06-17 20:58:00","2013-12-04 12:05:00","101",""White Oak"","0","0","1","1"'
line.gsub(/(?<!")"(?!")/, '""')
因此,要将其应用于代码,只需将文件替换为。将行写入:
File.write(file_name, text.gsub(/(?<!")"(?!")/, '""'))
File.write(文件名,text.gsub(/(?如果我理解正确,您希望将“…
的任何实例替换为”…)
,但仅当…
两边都有一个双引号时。您的某些值两边已经有两个双引号,应保持不变。例如,“未知”
应保持“未知”
,而不应变为“未知”
我假设您的“示例行”是一个单字符串,也就是说,它应该用引号括起来以声明为字符串,就像我在代码中做的那样——我用单引号括起来以避免大量双引号转义
line = '"1",""Unknown"","""","""",""Unknown"","""",""Unknown"","""","False","1077.36","132","8.1618","97","483","1","51","2010-06-17 20:58:00","2013-12-04 12:05:00","101",""White Oak"","0","0","1","1"'
line.gsub(/(?<!")"(?!")/, '""')
我使用的正则表达式使用负的lookbehind和lookahead来识别那些没有前面或后面有另一个双引号的双引号,并用两个双引号替换它们
line = '"1",""Unknown"","""","""",""Unknown"","""",""Unknown"","""","False","1077.36","132","8.1618","97","483","1","51","2010-06-17 20:58:00","2013-12-04 12:05:00","101",""White Oak"","0","0","1","1"'
line.gsub(/(?<!")"(?!")/, '""')
因此,要将其应用于代码,只需将文件替换为。将行写入:
File.write(file_name, text.gsub(/(?<!")"(?!")/, '""'))
File.write(文件名,text.gsub(/(?如果我理解正确,您希望将“…
的任何实例替换为”…)
,但仅当…
两边都有一个双引号时。您的某些值两边已经有两个双引号,应保持不变。例如,“未知”
应保持“未知”
,而不应变为“未知”
我假设您的“示例行”是一个单字符串,也就是说,它应该用引号括起来以声明为字符串,就像我在代码中做的那样——我用单引号括起来以避免大量双引号转义
line = '"1",""Unknown"","""","""",""Unknown"","""",""Unknown"","""","False","1077.36","132","8.1618","97","483","1","51","2010-06-17 20:58:00","2013-12-04 12:05:00","101",""White Oak"","0","0","1","1"'
line.gsub(/(?<!")"(?!")/, '""')
我使用的正则表达式使用负的lookbehind和lookahead来识别那些没有前面或后面有另一个双引号的双引号,并用两个双引号替换它们
line = '"1",""Unknown"","""","""",""Unknown"","""",""Unknown"","""","False","1077.36","132","8.1618","97","483","1","51","2010-06-17 20:58:00","2013-12-04 12:05:00","101",""White Oak"","0","0","1","1"'
line.gsub(/(?<!")"(?!")/, '""')
因此,要将其应用于代码,只需将文件替换为。将行写入:
File.write(file_name, text.gsub(/(?<!")"(?!")/, '""'))
File.write(文件名,text.gsub(/(?如果我理解正确,您希望将“…
的任何实例替换为”…)
,但仅当…
两边都有一个双引号时。您的某些值两边已经有两个双引号,应保持不变。例如,“未知”
应保持“未知”
,而不应变为“未知”
我假设您的“示例行”是一个单字符串,也就是说,它应该用引号括起来以声明为字符串,就像我在代码中做的那样——我用单引号括起来以避免大量双引号转义
line = '"1",""Unknown"","""","""",""Unknown"","""",""Unknown"","""","False","1077.36","132","8.1618","97","483","1","51","2010-06-17 20:58:00","2013-12-04 12:05:00","101",""White Oak"","0","0","1","1"'
line.gsub(/(?<!")"(?!")/, '""')
我使用的正则表达式使用负的lookbehind和lookahead来识别那些没有前面或后面有另一个双引号的双引号,并用两个双引号替换它们
line = '"1",""Unknown"","""","""",""Unknown"","""",""Unknown"","""","False","1077.36","132","8.1618","97","483","1","51","2010-06-17 20:58:00","2013-12-04 12:05:00","101",""White Oak"","0","0","1","1"'
line.gsub(/(?<!")"(?!")/, '""')
因此,要将其应用于代码,只需将文件替换为。将行写入:
File.write(file_name, text.gsub(/(?<!")"(?!")/, '""'))
File.write(文件名,text.gsub(/)如果您不确定正则表达式是否适用于您