我有一个文本行,我需要捕获值“关键字”键。
在这个示例中,值为"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]);发布于 2022-07-30 10:55:07
您不匹配关闭的",并且由于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*([^"]*?)"https://stackoverflow.com/questions/73171965
复制相似问题