我需要使用javascript使用正则表达式提取完整表单
我尝试过
(\w+\s*[^a-z^A-Z]*){3}\s*\([A-Z]*\)
但是当存在诸如此类的完整表格时,提取失败
大多数常见误操作(MCM) (仅选择粗体)
下面是要测试的文本:
从生物医学文献中自动提取首字母缩写词定义对的任务已经完成
最常见的误接(MCM) 经过研究,几乎专门针对英语 在过去的几十年中,使用了自然语言处理(NLP)的技术。这个部分 167 提出了一些方法和技术 被应用于首字母缩写词识别任务。 Taghva和Gilbreth(1999)提出了首字母缩写词7'- $ **** Finding Program(AFP)
,基于 模式匹配。他们的程序寻求 首字母缩写词候选,以大写字母显示 话。他们为每个计算启发式分数 通过将单词分类为以下内容来竞争定义: (1)停用词(“ the”,“ of”,“ and”),(2)带连字符的词(3)普通词(不包含该词的词) 属于以上任何类别)和(4) 首字母缩写词本身(因为首字母缩写词可以 有时是定义的一部分)。法新社 利用最长公共子序列(LCS) 算法(Hunt和Szymanski,1977)找到所有 首字母缩写词可能与文本对齐, 然后是基于的简单评分规则 在比赛中。他们的表现报告 实验是:召回率达86%,精度达98%
答案 0 :(得分:2)
您可以使用3个捕获组,并向与这些单词的第一个字母匹配的组进行反向引用,而不是重复该组3次。
\b(\w)[\w']*[^a-zA-Z()]* (\w)[\w']*[^a-zA-Z()]* (\w)[\w']*[^a-zA-Z()]* \(\1\2\3\)
\b
字边界(\w)
匹配第1组 [\w']*
匹配单词char或'
的0+次[^a-zA-Z()]*
匹配0倍以上所列字符以外的任何字符,然后匹配一个空格(\w)[\w'][^a-zA-Z()]
与上述第2组 (\w)[\w'][^a-zA-Z()]
与上述第3组 (\1\2\3)
在括号之间,对捕获组使用3个反向引用您还可以通过将'
添加到字符类中并重复0次以上[\w']*
您可以使用允许匹配的字符扩展字符类。
\b(?:\w[\w']* [^a-zA-Z]*){3} ?\([A-Z]{3}\)
\b
字边界(?:
非捕获组
\w[\w']*
匹配一个char字符,并将除char或'以外的任何char匹配0+次,然后匹配一个空格[^a-zA-Z]*
匹配除a-zA-Z以外的任何字符0+次){3} ?
重复3次并匹配可选空间\([A-Z]{3}\)
匹配括号中3个出现的A-Z