使用Regex在分隔符“:”之间提取字符串

时间:2011-11-01 22:20:21

标签: regex

我有一个分隔符“:”,需要从下面提取word1 word2 word3和word4:

word1:word2:word3:word4

什么是RegEx来提取word1,word2,word3和word4。

4 个答案:

答案 0 :(得分:3)

下面的正则表达式匹配以冒号分隔的任意数量的单词:

 /([^:]+)/g

或匹配自定义字数

/([^:]{min_number,max_number})/g

javascript中的简单方法:

 "word:word:word".match( /([^:]+)/g ) 

你会得到阵列:

["word","word","word" ]

答案 1 :(得分:2)

根据您使用的语言,您最有可能使用分割功能。

e.g。在C#你会做。

var words = "word1:word2:word3:word4".split(":");
//word[0] = "word1"
//word[1] = "word2"
//ect...

答案 2 :(得分:1)

在Regex下方将匹配以冒号分隔的4个非冒号词:

/([^:]+):([^:]+):([^:]+):([^:]+)/

答案 3 :(得分:0)

他没有提到任何语言。为什么你们一直在问语言?仅仅因为它是一个典型的“分裂”案例?可能是他有一个带有该格式的长文本,他只想用一些shell命令或文本编辑器提取单词。

在这种情况下,正则表达式解决方案是有意义的。

[^:]*(?=:)|(?<=:)[^:]*

这可以满足要求。提取单词。用grep测试:

kent$   echo "word1:word2:word3:word4"|grep -Po '[^:]*(?=:)|(?<=:)[^:]*'
word1
word2
word3
word4