所以我做了一些研究并发现这个PDF文件 http://www.laurenceanthony.net/software/antconc/releases/AntConc343/help.pdf描述嵌入标签和非嵌入标签的概念。您正在寻找嵌入的标签。那么如果我是正确的,输入会是这样的,对吧?
她_PP$ 声音_NN 和_DT 精确_JJ 重复_NN
只有这样,在更大的文本正文中,你不知道实际的单词,你只知道_XX
tags.
在正则表达式中,你必须更具体*
。你想要什么来代替*
是单词中的 1 个或多个字符(字母,但也可能包含连字符?)。这使得这个名词:
[\w-]+_NN
这意味着一个字符类[...] http://www.regular-expressions.info/charclass.html of 单词字符\w http://www.regular-expressions.info/refcharclass.html和连字符-
, 重复一次或多次+ http://www.regular-expressions.info/repeat.html, 其次是_NN
.
对于所有格代词来说,它有一个$
那里在正则表达式中有特殊含义,如果你想要特点 $
而不是它的特殊含义,你需要用前面的转义\
像这样:
[\w-]+_PP\$
最后,您要考虑单词之间允许使用哪些字符。可能只是空白,如空格、制表符和回车符,这将是\s+
。也可能是“任何不是单词字符的字符”允许句点、逗号、引号、冒号等。那就是\W+
(注意大写W
与小写字母相反\w
).
结合起来,这相当于:
[\w-]+_PP\$\W+[\w-]+_NN\W+[\w-]+_DT\W+[\w-]+_JJ\W+[\w-]+_NN
调试演示 https://www.debuggex.com/r/i6mnOsamsRlJavRN
To do “未确定数量的未知单词”你会这样做:
(?:[\w-]+\W+)*?
所以与单词匹配的部分[\w-]+
以及介于两者之间的部分\W+
被包装到非捕获组中(?:...)
据说该组出现 0 次或多次*
但尽可能少的次数?
避免贪婪 http://www.regular-expressions.info/repeat.html#greedy。你可以看到here https://www.debuggex.com/r/ANNiX3Mh1wdyI4Vk并删除或添加 X 以查看它是否仍然匹配。