我有一个字符串查询,我想匹配并提取特定单词。
当我有这个词时word.EXACT提取这个词的容器

MESH.EXACT("blood glucose monitoring")提取单词"blood glucose monitoring"


words.exact(“ N-Words”)->结果"N-Words"
words.exact(N-Words)->结果N-Words


Query_Input= (EMB.EXACT("insulin treatment")) and (MESH.EXACT("blood glucose monitoring")) OR "Self-Monitoring of Blood Glucose”

输出需要像这样

Query_out = "insulin treatment" "blood glucose monitoring" "Self-Monitoring of Blood Glucose”

这个演示有我的正则表达式和我的正则表达式:https://regex101.com/r/rqpmXr/15

最佳答案

您可以使用

/\w+\.EXACT\(([^)]*)\)/g


并用占组1值的占位符$1替换。请参见regex demo

图案细节


\w+-1个或多个字字符
\.EXACT\(-文字.EXACT(子字符串
([^)]*)-第1组:除)以外的任何0+个字符(如果需要确保您停留在一组[^()]*之内,可以使用(...)
\)-一个)字符。


参见JS演示:



var s = 'MESH.EXACT("blood glucose monitoring") words tt.EXACT("blood glucose monitoring") ';
var rx = /\w+\.EXACT\(([^)]*)\)/g;
document.querySelector("#result").innerHTML = s.replace(rx, "$1");

<div id="result" />

09-25 17:04