我有这样的字符串:
(any symbol) _ (any symbol) _ (any symbol)
我需要一个简短的正则表达式模式来提取_
之间的符号序列。
例如我有这个字符串:
abc123_abc12345ABC_123abc
正则表达式应该提取:
abc12345ABC
答案 0 :(得分:4)
这样就可以了:
^[^_]+_([^_]+)_[^_]+$
中间捕获组会抓住中间的字符串。
答案 1 :(得分:1)
使用(任何符号)你真的是指任何符号吗?它可以包含换行符吗?它可以包含下划线吗?
现在,我将给出这个简短的正则表达式:
_(.+)_
答案 2 :(得分:0)
([^_]*)_([^_]*)_([^_]*)
答案 3 :(得分:0)
如何
^.*?_(.*?)_.*$
答案 4 :(得分:-1)
还有这个
如果你在 R 中使用 rebus 包
library(rebus)
library(tidyverse)
separator <- '_' %R% one_or_more(ANY_CHAR, char_class = F) %R% '_'
yx2 <- 'abc123_abc12345ABC_123abc'
str_extract(yx2, separator) %>% str_remove_all("_")
[1] "abc12345ABC"