Python 正则表达式修复csv引号
我有一个带引号的简单csv,类似于: “某物”、“某物”、“某物”、“某物” 但是,有时我会和你在一起 “某物”、“某物”、“某物” 我想创建一个正则表达式来解决这个问题,有人能提供什么吗 将从字符串中删除不是数字或文本的所有内容的内容,但当我删除Python 正则表达式修复csv引号,python,regex,scala,csv,regex-negation,Python,Regex,Scala,Csv,Regex Negation,我有一个带引号的简单csv,类似于: “某物”、“某物”、“某物”、“某物” 但是,有时我会和你在一起 “某物”、“某物”、“某物” 我想创建一个正则表达式来解决这个问题,有人能提供什么吗 将从字符串中删除不是数字或文本的所有内容的内容,但当我删除“时,我需要确保它不是限制字符串的内容,因为我需要这些内容 所以从“som”ething“,”s“ometh8 ing”id expect=>“something”,“someth8 ing” 我在使用scala,但任何解决方案都会很好 谢谢!!简单的
“
时,我需要确保它不是限制字符串的内容,因为我需要这些内容
所以从“som”ething“,”s“ometh8 ing”
id expect=>“something”,“someth8 ing”
我在使用scala,但任何解决方案都会很好
谢谢!!简单的解决方案
Scala中的一个简单解决方案:
scala>val input=”““som”ething““s”ometh8 ing”
输入:String=“som”ething”,“s”ometh8 ing”
scala>val values=input.split(“\”,\”).map(u.filter(c=>c.isleterOrdigit | | c.isWhitespace))
值:数组[字符串]=数组(某物,某物)
scala>val输出=values.mkString(“\”、“\”、“\”、“\”、“\”)
输出:String=“something”,“someth8 ing”
假设您的值中从来没有“”,“
”,但如果您这样做了,那么无论如何也无法明确地修复CSV
这不是最理想的解决方案速度或内存,但它又短又简单
编辑:正则表达式解决方案
如果您真的想要一些正则表达式,请享受:
scala>input.replaceAll(“(^“|“$|”,“|[\p{IsAlphabetic}\p{Digit}\p{Space}]))。”,“$1”)
res17:String=“something”,“something”
这将尝试在输入的开始或结束处匹配“
”,或在任何其他地方匹配”、“
”,或匹配您批准的任何字符。如果其中任何一个匹配,它将转到第一个捕获组。否则,它将匹配任何字符(
),但不会在组中捕获它,因此第一个组保持为空。然后,匹配的子字符串被替换为$1
,这是第一个捕获组的内容
我仍然认为第一个解决方案更清晰,更容易理解
import re
csv_string = '"something","som"ething"","s"omething"'
for each_str in re.findall(r'(.*?)[\,\n]', csv_string):
print(re.sub(r'\"', '', each_str)
在字符串的末尾添加换行符,这样您就可以在re.findall中包含字符串的最后一部分您可以对每个值使用
'''+x.replace(''''','')+'
是否有任何特定的原因需要使用正则表达式?字符串替换会简单得多。正确转义的引号如何,例如“a”“b”“cd”“