我使用的是Sublime Text 3,我有一个CSV文件,其中包含单引号:
输入:
"col1", "col2", "col3", "col4", "col5"
"Cakes", "5" Carrots", "Pineapples'", ""Eggs"", "Apple 5" and 10""
...
使用正则表达式,我想“中和”但不删除不合适的单引号(例如5“胡萝卜”
,“鸡蛋”
)和撇号(例如菠萝”
)。
“中和”的具体意思是将\“
放在每个单引号/撇号前面,因此输出为:
输出:
"col1", "col2", "col3", "col4", "col5"
"Cakes", "5\"" Carrots", "Pineapples\"'", "\""Eggs\""", "Apple 5\"" and 10\"""
...
到目前为止的进展:我想我有2件需要解决的难题。
首先,我可以使用正则表达式(“*)([“])(.*)”)(.*)
自己查找并替换每个字段的引号示例:
输入:"Hello 5"World"
查找:(".*)(["])(.*")
替换:
\1\\"\3
输出:"Hello 5\""World"
。要重现这一点,您需要在Sublime的查找和替换工具栏上选择正则表达式和换行选项。
其次,我可以使用正则表达式
([^,\n])
在csv文件(以升华格式打开)中找到每个字段。有关更多信息,请参见上一个问题。
问题是,我如何使用这两种技术(或其他技术,如果需要)来查找正则表达式,并用正则表达式替换每个带有单引号的字段(即在其前面加上
\“
)。
如果你不认为这可以通过升华和正则表达式来实现,如果你能提出一种方法来实现这一点,那就太好了。
进一步详细信息:为绝对清晰起见,解决方案应包含一个常规express,用于查找CSV文件(以升华格式打开)中的每个字段,该字段在中有一个引号。然后应该有一个正则表达式,在每个引号之前插入字符串
\“
。
我会执行三个步骤来解决你的问题:
编辑:
我刚刚更新了步骤2。我想我理解你的问题,没错。如果没有,请解释原因,我将相应地调整正则表达式。
问题内容: 我需要在逗号处将字符串输入分解为数组。但是,字符串在引号内包含逗号。 输入: 返回$ linemysql为: 我如何才能做到这一点,而爆炸会忽略引号内的逗号? 问题答案: 由于您使用的是逗号分隔的值,因此可以使用。 将返回:
问题内容: 我有一个像下面的字符串- 值1,值2,值3,值4,“值5、1234”,值6,值7,“值8”,值9,“值10、123.23” 如果我在字符串上方标记化,则会得到逗号分隔的标记。但是我想说的是,字符串令牌生成器在进行拆分时会忽略双引号后的逗号。我怎么说呢 提前致谢 沙市 问题答案: 使用像OpenCSV这样的CSV解析器来自动处理带引号的元素中的逗号,跨多行的值等。您也可以使用该库将文本序
问题内容: 我有一个模糊的字符串,像这样: 我想按逗号分割-但我需要忽略引号中的逗号。我怎样才能做到这一点?似乎正则表达式方法失败了;我想我可以在看到报价时手动扫描并进入其他模式,但是使用预先存在的库会很好。(编辑:我想我的意思是那些已经属于JDK或已经属于诸如Apache Commons之类的常用库的库。) 上面的字符串应分为: 注意:这不是CSV文件,它是文件中包含的单个字符串,具有较大的整体
问题内容: 我有这样一个字符串: 我想按逗号分割-但我需要忽略引号中的逗号。我怎样才能做到这一点?似乎正则表达式方法失败了;我想我可以在看到报价时手动扫描并进入其他模式,但是使用预先存在的库会很好。 上面的字符串应分为: 问题答案: 可以使用正则表达式 输出:
问题内容: 我有一个像 我想把它分成那些字符串 如果我简单地打电话给我,那么在修剪之后我会得到不同的结果,因为在某些字符串中,例如,仍然有一个逗号。但我不想放在方括号中。有解决这个问题的优雅方法吗? 问题答案: 假设和没有嵌套和未转义。您可以使用以下方式进行拆分: 正则演示 如果逗号后面没有非圆括号和,则将匹配逗号,从而忽略和中的逗号。
我试图创建一个数据数组与FLOT图表一起使用。我使用这个CodeIgniter代码来生成数组: 这段代码的问题是无法绘制生成的JSON对象,因为“值”实际上是字符串。以下是有问题的JSON输出: 这个JSON有三个问题: 需要方括号而不是花括号;和 以下是JSON输出的格式: 清理这个JSON对象的最佳方法是什么?我应该在服务器端使用CodeIgniter代码吗?或者我应该在javascript中