1
我有像下面这样的csv格式的文本。在正则表达式中提取文本
hi="hello",how="are",,,you="",thank="you"
请帮我得到一个正则表达式来提取上述文字
hello,are,,,,you
基本上我想只取值在上面的键值对,并保持逗号,因为它们是(在技术上框架一个完美的csv)
注:我实际上是在寻找一个纯正则表达式,而不是Java功能..请。
谢谢
我有像下面这样的csv格式的文本。在正则表达式中提取文本
hi="hello",how="are",,,you="",thank="you"
请帮我得到一个正则表达式来提取上述文字
hello,are,,,,you
基本上我想只取值在上面的键值对,并保持逗号,因为它们是(在技术上框架一个完美的csv)
注:我实际上是在寻找一个纯正则表达式,而不是Java功能..请。
谢谢
所以从你的句子开始:
String str = "hi=\"hello\",how=\"are\",,,you=\"\",thank=\"you\"";
您可以删除的word="
所有出现和"
:
str = str.replaceAll("(\\w*=\"|\")", ""); //remove word=" OR "
另一种方式,这将赶上组key="value"
并用value
代替:
str = str.replaceAll("\\w+=\"(.*?)\"", "$1"); // $1 is the value catch in()
模式我的文字在哪里? – QuakeCore
对不起,但你为什么要寻找一个“纯正规表达式”?如果你有一些条件需要使用一个正则表达式,请解释一下这个条件是什么。大多数提问这样的问题的海报人员真的没有理由想要正则表达式 - 他们认为正则表达式是一种可以解决任何问题的魔法野兽。在很多情况下,使用java函数是最好的方法。所以你需要一个很好的解释你为什么不需要java函数。 – ajb
尝试'text.replaceAll(“\\ w + = \”(。*?)\“”,“$ 1”)'。 – saka1029