2017-08-06 58 views
1

我有像下面这样的csv格式的文本。在正则表达式中提取文本

hi="hello",how="are",,,you="",thank="you" 

请帮我得到一个正则表达式来提取上述文字

hello,are,,,,you 

基本上我想只取值在上面的键值对,并保持逗号,因为它们是(在技术上框架一个完美的csv)

注:我实际上是在寻找一个纯正则表达式,而不是Java功能..请。

谢谢

+0

模式我的文字在哪里? – QuakeCore

+0

对不起,但你为什么要寻找一个“纯正规表达式”?如果你有一些条件需要使用一个正则表达式,请解释一下这个条件是什么。大多数提问这样的问题的海报人员真的没有理由想要正则表达式 - 他们认为正则表达式是一种可以解决任何问题的魔法野兽。在很多情况下,使用java函数是最好的方法。所以你需要一个很好的解释你为什么不需要java函数。 – ajb

+0

尝试'text.replaceAll(“\\ w + = \”(。*?)\“”,“$ 1”)'。 – saka1029

回答

1

所以从你的句子开始:

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()