给定字符串str = "Senior Software Engineer (mountain view)"
在我点击第一个括号之前,如何匹配所有内容,让我回到“高级软件工程师”
答案 0 :(得分:20)
你可以使用^[^\(]+
来匹配它,然后修剪它以删除尾随空格
答案 1 :(得分:7)
^[^\(]*
[^\(]
是一个字符类,它匹配除(
之外的所有内容,而*
是一个贪婪的匹配项,它尽可能多地匹配该类。开头的^
与字符串的开头匹配。
答案 2 :(得分:5)
要避免尾随空格,请尝试^.*?(?=\s\()
。
^(.*?)
告诉它从字符串的开头匹配尽可能少的字符,并且(?=\s\()
将匹配的另一端锚定到你的paren,而不是捕获它或之前的空格它
答案 3 :(得分:4)
您可以在R:*\\(.*
str <- "Senior Software Engineer (mountain view)"
sub(" *\\(.*", "", str)
# [1] "Senior Software Engineer"
它还避免了尾随空格。
答案 4 :(得分:0)
如果您想在括号前后匹配所有内容,请尝试以下操作:
搜索:^[^\(]+|(\)).*
替换者:\1
,如果要匹配所有括号并删除它们,请尝试以下操作:
搜索:\([^(\r\n]*?\)|\(|\)
替换者:(LEAVE EMPTY)
答案 5 :(得分:0)
一种整洁的方式...
library("stringr")
下面的输出,将返回您的列表...
str_match_all(str, "^[^\\(]+")
如果您需要输入字符串
str_match_all(str, "^[^\\(]+") %>% toString()
答案 6 :(得分:0)
unglue 软件包提供了一种可读的替代方法:
# install.packages("unglue")
library(unglue)
x <- "Senior Software Engineer (mountain view)"
unglue_vec(x,"{job} ({location})", var = "job")
#> [1] "Senior Software Engineer"
更多信息:https://github.com/moodymudskipper/unglue/blob/master/README.md