GREP:从双引号中提取所有字符

时间:2013-11-05 19:29:49

标签: regex shell unix grep

我做了什么:

grep -E -o -e“[^”] +“

它可以提取,例如:“波兰”和“纽约”,但由于“á”的存在而无法提取“MarcosJuárez”......它将输出切换为“Marcos Ju”和“rez” “

我该怎样防止这种情况?

2 个答案:

答案 0 :(得分:0)

我不认为这是一个正则表达式问题。它可能是Unicode或广泛的问题 你的正则表达式应该是"[^"]+",而不是双引号。

我不知道unix命令行,但是什么是分隔"[^']+"参数, 它是由空间完成的吗?

尝试".*?",它应该匹配。如果不是它的unicode问题。

答案 1 :(得分:0)

尝试:

grep -Po  '(?<=\")(.*?)(?=\")'

对我来说,它正确输出所有三个。