[英]Using regex to capture a value in a text line
我有一个文本行,我需要捕获值“关键字”键。
在此示例中,值为“ConquestImageDate”。
使用下面的代码,我可以将值捕获为 ConquestImageDate"。
但它的末尾有一个'"'。
我知道我可以使用替换来摆脱它。
但是,我想在正则表达式中做到这一点。
let line =
'(0008,0023) VERS="CQ" VR="DA" VM="1" Keyword="ConquestImageDate" Name="Conquest Image Date"';
const re = /Keyword=\"\s*(\S+)/;
m = re.exec(line);
console.log(m[1]);
您不匹配关闭"
,并且由于 exec 可能会产生 null 您可以在索引之前先检查m
。
let line = '(0008,0023) VERS="CQ" VR="DA" VM="1" Keyword="ConquestImageDate" Name="Conquest Image Date"'; const re = /Keyword="\s*(\S+)"/; m = re.exec(line); if (m) { console.log(m[1]); }
如果最后还可能有不需要的空白字符,则可以使\S
非贪婪。
let line = '(0008,0023) VERS="CQ" VR="DA" VM="1" Keyword="ConquestImageDate" Name="Conquest Image Date"'; const re = /Keyword="\s*(\S*?)\s*"/; m = re.exec(line); if (m) { console.log(m[1]); }
您正在匹配单数的Keyword
,但如果在任何情况下您想在双引号之间匹配空格或换行符
\bKeyword="\s*([^"]*?)"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.