用于查找和替换字符串中用逗号分隔并用引号引起来的单引号的正则表达式
Regex to find and replace single quotation marks in strings separated by a comma and enclosed in quotes
我正在使用 Sublime Text 3,我有一个包含单引号的 CSV 文件:
输入:
"col1", "col2", "col3", "col4", "col5"
"Cakes", "5" Carrots", "Pineapples'", ""Eggs"", "Apple 5" and 10""
...
使用正则表达式我想 "neutralise" 但不删除不合适的单引号(例如 5" Carrots
、""Eggs""
)和撇号(例如 Pineapples'
).
通过中和,我的意思是将 \"
放在每个 quotation/apostrophe 前面,所以输出是:
输出:
"col1", "col2", "col3", "col4", "col5"
"Cakes", "5\"" Carrots", "Pineapples\"'", "\""Eggs\""", "Apple 5\"" and 10\"""
...
目前进度:
我想我需要 2 件来解决这个难题。
首先,我可以使用正则表达式 (".*)(["])(.*")
自行查找和替换每个字段的引号
示例:
输入: "Hello 5" World"
查找: (".*)(["])(.*")
替换: \\""
输出:"Hello 5\"" World"
。要重现这一点,您需要在 sublime 查找和替换工具栏上选择正则表达式和换行选项。
其次,我可以使用正则表达式 ([^,\n]+)
在 csv 文件(在 Sublime 中打开)中找到每个字段。有关详细信息,请参阅 this 上一个问题。
问题是我如何使用这两种技术(或其他技术,如果需要)来找到一个正则表达式和一个正则表达式来替换每个带有单引号的字段(即在它前面加上 \"
).
如果您认为这不能通过 sublime 和正则表达式来完成,那么如果您能建议一种方法来做到这一点就太好了。
更多详情:
为了绝对清楚,解决方案应包含一个正则表达式,用于查找 CSV 文件(在 sublime 中打开)中具有单引号的每个字段。然后应该有一个正则表达式,在每个引号之前插入字符串 \"
.
我正在使用 Sublime Text 3,我有一个包含单引号的 CSV 文件:
输入:
"col1", "col2", "col3", "col4", "col5"
"Cakes", "5" Carrots", "Pineapples'", ""Eggs"", "Apple 5" and 10""
...
使用正则表达式我想 "neutralise" 但不删除不合适的单引号(例如 5" Carrots
、""Eggs""
)和撇号(例如 Pineapples'
).
通过中和,我的意思是将 \"
放在每个 quotation/apostrophe 前面,所以输出是:
输出:
"col1", "col2", "col3", "col4", "col5"
"Cakes", "5\"" Carrots", "Pineapples\"'", "\""Eggs\""", "Apple 5\"" and 10\"""
...
目前进度: 我想我需要 2 件来解决这个难题。
首先,我可以使用正则表达式 (".*)(["])(.*")
自行查找和替换每个字段的引号
示例:
输入: "Hello 5" World"
查找: (".*)(["])(.*")
替换: \\""
输出:"Hello 5\"" World"
。要重现这一点,您需要在 sublime 查找和替换工具栏上选择正则表达式和换行选项。
其次,我可以使用正则表达式 ([^,\n]+)
在 csv 文件(在 Sublime 中打开)中找到每个字段。有关详细信息,请参阅 this 上一个问题。
问题是我如何使用这两种技术(或其他技术,如果需要)来找到一个正则表达式和一个正则表达式来替换每个带有单引号的字段(即在它前面加上 \"
).
如果您认为这不能通过 sublime 和正则表达式来完成,那么如果您能建议一种方法来做到这一点就太好了。
更多详情:
为了绝对清楚,解决方案应包含一个正则表达式,用于查找 CSV 文件(在 sublime 中打开)中具有单引号的每个字段。然后应该有一个正则表达式,在每个引号之前插入字符串 \"
.