Regex 删除双引号之前的所有内容
我正在尝试清理一个CSV文件,其中有一列内容如下:Regex 删除双引号之前的所有内容,regex,bash,openrefine,grel,Regex,Bash,Openrefine,Grel,我正在尝试清理一个CSV文件,其中有一列内容如下: Sometexthere1", "code"=>"47.51-2-01"}] 我想删除第一个引号(“)之前的所有内容,以便保留以下内容: Sometexthere1 我知道我可以使用$`在正则表达式中的某些匹配之前获取所有内容,但我不知道如何仅保留第一个双引号之前的字符串。这是否足够好: # Define a variable s='Sometexthere1", "code"=>"47.51-2-01"}]' # expan
Sometexthere1", "code"=>"47.51-2-01"}]
我想删除第一个引号(“)之前的所有内容,以便保留以下内容:
Sometexthere1
我知道我可以使用$`在正则表达式中的某些匹配之前获取所有内容,但我不知道如何仅保留第一个双引号之前的字符串。这是否足够好:
# Define a variable
s='Sometexthere1", "code"=>"47.51-2-01"}]'
# expand it, removing the longest possible match (from the end) for '"'*
result=${s%%'"'*}
# demonstrate that result by printing it
printf '%s\n' "$result"
…正确地返回sometext其中1
这一点做得足够好:
# Define a variable
s='Sometexthere1", "code"=>"47.51-2-01"}]'
# expand it, removing the longest possible match (from the end) for '"'*
result=${s%%'"'*}
# demonstrate that result by printing it
printf '%s\n' "$result"
…正确返回Sometexthere1
您的意思可能是“删除所有双引号后的内容”?在Open Refine中,您可以使用以下GREL公式:
value.replace(/".+/, "")
> Result : Sometexthere1
您的意思可能是“删除双引号后的所有内容”?在Open Refine中,您可以使用以下格雷尔公式:
value.replace(/".+/, "")
> Result : Sometexthere1
给定的样本是行的一部分还是整行?还要添加您试图提问的代码/命令是行的给定样本部分还是整行?还要添加您试图提问的代码/命令删除子字符串和替换子字符串都符合要求。例如
result=“${s/\”*/}”
同样如此。拆除和更换子串都符合要求。e、 gresult=“${s/\”*/}”
。