Сопоставлять все до круглых скобок

Для строки str = "Senior Software Engineer (mountain view)"

Как я могу совместить все, пока не ударил первую скобку, вернув мне "Senior Software Engineer"

Ответ 1

вы бы использовали ^[^\(]+, чтобы сопоставить это, а затем обрезать его, чтобы удалить конечное пространство

Ответ 2

^[^\(]*

[^\(] - это класс символов, который соответствует всем, кроме (, а * - жадное соответствие, которое соответствует классу как можно дольше. ^ в начале совпадает с началом строки.

Ответ 3

Чтобы избежать конечных пробелов, попробуйте ^.*?(?=\s\().

^(.*?) указывает, что он соответствует как можно меньше символов, начиная с начала строки, а (?=\s\() привязывает другой конец совпадения к вашему парну, не захватывая его или пробелы перед ним.

Ответ 4

Вы можете использовать это простое регулярное выражение в R: *\\(.*

str <- "Senior Software Engineer (mountain view)"

sub(" *\\(.*", "", str)
# [1] "Senior Software Engineer"

Он также избегает конечных пробелов.

Ответ 5

и если вы хотите сопоставить все до и после скобок, попробуйте это:

ПОИСК: ^[^\(]+|(\)).*

ЗАМЕНА НА: \1

и если вы хотите сопоставить все парантезы и удалить их, попробуйте это:

ПОИСК: \([^(\r\n]*?\)|\(|\)

ЗАМЕНА: (LEAVE EMPTY)

Ответ 6

Тидиверс путь...

library("stringr")

Вывод ниже, вернет вам список...

str_match_all(str, "^[^\\(]+")

Если вам нужно в строке

str_match_all(str, "^[^\\(]+") %>% toString()