簡體   English   中英

R 上的正則表達式模式:n-dash、m-dash、括號

[英]regex patterns on R: n-dash, m-dash, parentheses

我有兩個正則表達式問題:

第 1 部分:我有一個帶有如下字符串的字符向量:

raw_strings <- c("hello world (abc)", "no hi world (abc(d))")

我想提取第一組括號內的內容,如下所示:

clean_strings <- c("abc", "abc(d)")

到目前為止,我一直在使用這個:

str_extract(raw_strings, "(?<=\\().+?(?=\\))")

但是,這會導致:

"abc" "abc(d"

如何更改表達式以保留最后的括號?

第 2 部分:我有一些看起來像這樣的字符串:

b_strings <- c("5.2 ko – word (longer word)", "5.9 ko - two words (long)")

我想要這個:

b_strings_clean <- c("word", "two words")

到目前為止,我已經這樣做了:

str_extract(ac_meta, "\\s[^-–]*$")

結果是:

"word (longer word)" "two words (long)"

如何刪除括號后的所有內容(包括括號)?

謝謝你。

使用環視是否有效:

str_extract(raw_strings, '(?<=\\().*(?=\\))')
[1] "abc"    "abc(d)"

str_extract(b_strings, '(?<=[–-]\\s).*(?=\\s\\()')
[1] "word"      "two words"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM