16

与えられた文字列str = "Senior Software Engineer (mountain view)"

最初の括弧に当たって「シニアソフトウェアエンジニア」を返すまで、どのようにすべてを一致させることができますか

4

7 に答える 7

27

これを^[^\(]+一致させてからトリミングして、末尾のスペースを削除します

于 2012-12-13T20:26:16.513 に答える
8

^[^\(]*

[^\(](は、を除くすべてに一致する文字クラスであり*、可能な限りクラスに一致する貪欲な一致です。先頭の^は、文字列の先頭から一致します。

于 2012-12-13T20:28:07.167 に答える
5

末尾の空白を避けるには、を試してください^.*?(?=\s\()

^(.*?)文字列の先頭からできるだけ少ない文字に一致するように指示し、一致(?=\s\()のもう一方の端を、文字列またはその前の空白をキャプチャせずに、親に固定します。

于 2012-12-13T20:35:55.947 に答える
5

この単純な正規表現はRで使用できます。*\\(.*

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

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

また、末尾の空白を回避します。

于 2014-01-29T13:15:49.317 に答える
1

きちんとした方法...

library("stringr")

以下の出力は、リストを返します...

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

文字列が必要な場合

str_match_all(str, "^[^\\(]+") %>% toString()
于 2019-07-16T16:22:12.997 に答える
0

括弧の前後ですべてを一致させたい場合は、次のことを試してください。

探す: ^[^\(]+|(\)).*

交換者: \1

すべてのparanthesisを一致させて削除する場合は、次のことを試してください。

探す:\([^(\r\n]*?\)|\(|\)

交換者: (LEAVE EMPTY)

于 2019-02-09T10:52:07.343 に答える
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

于 2019-11-06T12:59:10.130 に答える