Повторить стандартную осторожность, когда кто-то предлагает переписывать историю (или в этом случае историю перезаписи), - если вы можете избежать этого, не делайте этого.
Однако, не стоит долговременной боли в неточной (беспорядочной) истории, и краткосрочная боль стоит того.
Если это так, в следующей статье приведены необходимые шаги: Как переименовать тег уже нажат на удаленный git Repo .
Основные шаги:
git tag new_tag old_tag
git push --tags
git push origin :refs/tags/old_tag
git tag -d old_tag
Мы можем использовать str_extract
для соответствия заглавной ([A-Z]
), за которой следует граница слова (\\b
), за которым следует один или несколько символов слова
library(stringr)
str_extract_all(text, "\\b[A-Z]\\w+")[[1]]
#[1] "Honda" "Asus"
Или с gregexpr/regmatches
из base R
regmatches(text, gregexpr("\\b[A-Z]\\w+", text))
#[1] "Honda" "Asus"
Я бы сделал так:
const str = "fsfs blabla Honda t Asus";
const regex = /([A-Z]\w+)/g;
const result = [];
let m;
while ((m = regex.exec(str)) !== null) result.push(m[1]);
$('#result').html(JSON.stringify(result));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="result"></p>
В базе R вы можете сделать
grep("^[A-Z]", scan(textConnection("fsfs blabla Honda t Asus"), ""), value=TRUE)
Read 5 items
[1] "Honda" "Asus"
Здесь scan
читает текст и разбивает его пробелом. Затем grep
со значениями = TRUE возвращает все элементы в символьном векторе, которые соответствуют подвыражению «^ [AZ]», которое может быть прочитано «начинается с заглавной буквы».
Вместо scan
, вы можете использовать strsplit
/ unlist для того же результата.
grep("^[A-Z]", unlist(strsplit("fsfs blabla Honda t Asus", " ")), value=TRUE)
Вот решение без регулярных выражений:
text <- "fsfs blabla Honda t Asus"
x <- strsplit(text, " ", T)[[1]]
x[substr(x, 1, 1) %in% LETTERS]
# [1] "Honda" "Asus"