regex - 正则表达式提取双引号之间的任何字符串(带双引号)
问题描述
我不知道如何提取双引号之间的任何字符串,该字符串可能包含双引号,例如:
""aa" => "aa
"aa" => aa
"" =>
"a\nb" => a\nb
"\u0082" => \u0082
"ᅚ竁퇈" => ᅚ竁퇈
我试过\"([^\"]*)\"
但在 ""aa" => "aa 上失败了
解决方案
您的示例 ""a" 无法处理,因为您不知道是取 null 还是 "aa.
无论如何,如果您的样本在一行上,您可以使用正则表达式开始和结束:
sed 's/^"//;s/"$//'
测试:
$ cat file
""aa"
"aa"
""
"a\nb"
"\u0082"
"ᅚ竁퇈"
$ cat file | sed 's/^"//;s/"$//'
"aa
aa
a\nb
\u0082
ᅚ竁퇈
推荐阅读
- c# - 为什么允许我在非静态构造函数中为静态只读字段对象定义 SendCompletedEventHandler?
- css - 使用 Bootstrap 4 的文本和图像
- postgresql - Postgres 导出器和与 Postgres 数据库的连接
- java - 如何在 Liferay Dev Studio 中使用 Jax-rs 后端创建 Rest API?
- mongodb - MongoDB 聚合:通过动态字段路径从嵌入式文档中添加字段
- asp.net - 多对多关系中的基础实体
- html - 屏幕移动时按钮溢出 x 对齐
- java - 方法调用(静态/非静态)
- android - 在 android 中使用 Telr 支付网关时上下文为空
- linux - 将 .tar.gz 构建为 .rpm 的规范文件