我的医疗部门有“chunked”句子。
句子如下:
“[ADVP再次/ RB] [VP见/ VBN] [NP是/ VBZ] [NP a / DT焦点/ JJ 不对称/ NN]。
“[NP诊断/ JJ乳房X线照片/ NN] [PP / IN] [NP / DT左/ JJ 乳房/ NN]。
我需要从那些“块”中仅提取单词的方法。所有句子的通用规则是单词出现在'/'char。
之前是否有选项可以组合REGEX或其他东西以获得没有POS的字符串?
由于
答案 0 :(得分:3)
查找此正则表达式的所有匹配项。
\w+(?=/)
我在RegexPal.com进行了测试。工作就像一个魅力。
正则表达式非常简单。它会匹配单词(\w+
)后跟/
而不会匹配/
部分。这消除了处理捕获组等的需要。它与(?=/)
进行'跟随'匹配,它基本匹配紧跟着/
的点。这称为lookahead。
以下是一些示例代码:
string sentence = "[ADVP again/RB ] [VP seen/VBN ] [NP is/VBZ ] [NP a/DT focal/JJ asymmetry/NN ].";
MatchCollection matches = Regex.Matches(sentence, @"\w+(?=/)");
foreach (Match match in matches)
{
Console.WriteLine(match.Value);
}
输出:
again
seen
is
a
focal
asymmetry
答案 1 :(得分:1)
这似乎有效:
var patt = @"\s(\b(.+?))/";
var matches = Regex.Matches("[ADVP again/RB ] [VP seen/VBN ] [NP is/VBZ ] [NP a/DT focal/JJ asymmetry/NN ].", patt);
var matchedValues = matches
.Cast<Match>()
.Select(match => match.Groups[1].Value);
var output = string.Join(" ", matchedValues);
=&GT; “再次看到的是焦点不对称”
答案 2 :(得分:0)
您正在搜索RegEx匹配 再次,看,是,a,对称性 和 诊断,乳房,乳房,左,乳房
右?
然后...... / \ b([\ w] +)//应该工作
答案 3 :(得分:0)
试试这个。
var val = "[ADVP again/RB ] [VP seen/VBN ] [NP is/VBZ ] [NP a/DT focal/JJ asymmetry/NN ]";
var list = val.Split('/').Select(c => c.Split(' ').Last());