正则表达式无法按预期工作

时间:2014-03-21 00:41:47

标签: regex

有人可以帮我正则表达。我真的很挣扎。

基本上我想编写一个正则表达式来将字符串分成两个子字符串。

例如,在示例中,我想将完整字符串分隔为"comp99810_c0_seq1" and "|m.8409"

test <- "comp99810_c0_seq1|m.8409" 
c1 <- sub("([A-Za-z1-9])(\\|)(m.\\d+)", "\\1", test) 
c2 <- sub("([A-Za-z1-9])(\\|)(m.\\d+)", "\\2\\3", test) 

我能够让c1工作而不是c2。有人可以帮帮我....

由于 众议员

2 个答案:

答案 0 :(得分:2)

尝试使用您当前使用的语言中的类似split("|")函数。

但是,请将[A-Za-z1-9]更改为\\w+,这对您有用。

目前你的正则表达式只意味着一个字符。 \\w+表示a-zA-Z0-9_

中的一个或多个字符

答案 1 :(得分:0)

如果您不想拆分“\ |”,问题是第一组缺少重复字符。即([A-Za-z1-9])+或([A-Za-z1-9])*。因为现在它只匹配该集合中的单个字符,然后尝试查找管道。