R - 使用正则表达式捕获物种名称(二项名称)

  • 本文关键字:二项 正则表达式 r regex
  • 更新时间 :
  • 英文 :


我正在尝试使用正则表达式查找物种名称(也称为二项名称或林奈名称(,例如"智人"。规则应该是:两个单词,第一个单词以大写字母开头,第二个单词不以大写字母开头;仅包含字母,但不包含数字、短划线或任何其他字符。我的天真实现是:binomal <- "([A-Z]{1}[a-z]{2,}[:space:][a-z]{2,})"

它确实找到了这样的名称,但是当我不期望它们时,它也给出了积极的结果(使用 R 的grep函数(,如以下文本行所示: 《日本、中国海、到澳大利亚》

有什么建议吗?

编辑:感谢您到目前为止的建议。我应该澄清两件事:首先,每个单词应该至少有两个字符(即"A b"不应该被捕获(。其次,我实际上正在尝试使用它在 html 文件中查找这样的二项名称。因此,不幸的是,JvdV对锚的疑虑是真实的......这是我的html文件的简短摘录:

<tr> 
<td height="60">&nbsp;</td>
<td colspan="3"><div align="center"><em>Anadara grandis</em> (Broderip &amp; Sowerby, 1829)<br />
B_ARCI_012 W. Mexico 125mm</div></td>

在这里,我试图抓住"阿纳达拉格兰迪斯">

试试这个正则表达式

^[A-Z][a-z]+ [a-z]+$

它匹配两个单词,第一个单词开头大写,第二个没有数字,都是小写的。

也试试这里

最新更新