поиск названий видов (биномиальных названий) с использованием регулярного выражения - PullRequest
1 голос
/ 17 июня 2020

Я пытаюсь найти названия видов (также называемые биномальными именами или линнеевскими именами), такие как «Homo sapiens», используя регулярное выражение. Правила должны быть такими: два слова, первое слово начинается с заглавной буквы, второе - нет; содержит только буквы, но без цифр, дефисов и других символов. Моя наивная реализация: 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>

Вот пытаюсь поймать "Anadara grandis"

1 Ответ

0 голосов
/ 17 июня 2020

Попробуйте это регулярное выражение

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

Оно соответствует двум словам, первое из которых имеет заглавную букву в начале, а второе не имеет цифр и все в нижнем регистре.

Попробуйте здесь также

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...