我有一个字符串查询,我想匹配并提取特定单词。
当我有这个词时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" />