正则表达式匹配下划线之间的符号

时间:2009-12-22 16:49:16

标签: regex

我有这样的字符串:

(any symbol) _ (any symbol) _ (any symbol)

我需要一个简短的正则表达式模式来提取_之间的符号序列。

例如我有这个字符串:

abc123_abc12345ABC_123abc

正则表达式应该提取:

abc12345ABC

5 个答案:

答案 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"