正则表达式将字符串中的名称提取到列表中

时间:2016-03-04 02:09:18

标签: regex vb.net string

如何使用正则表达式从以下字符串中提取名称:

layoutIfNeeded

并将其添加到列表中,我尝试使用正则表达式但我无法找到正确的表达式来提取名称,并且在这个区域仍然有点不稳定。

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

这应该在vb.net中有效。

(?<=^|,)\w+

https://regex101.com/r/wT8rE9/1

如果逗号后面有空格:

(?<=^|,|,\s)\w+

如果您对捕获组感到满意,您可以执行以下更有效的操作:

(?:^|,\s*)(\w+)

答案 1 :(得分:1)

对于简单的情况,我建议不要使用Regex,您可以使用string.Splitstring.ReplaceLINQ Where这样做:

Dim names As String() = sentence.Replace("got ", "").Split(" ").Where(Function(t) Char.IsLetter(t(0))).ToArray()

假设你有sentence

Dim separators As Char() = {",", " "}
Dim names As String() = sentence.Replace("got ", "").Split(separators, System.StringSplitOptions.RemoveEmptyEntries).Where(Function(t) Char.IsLetter(t(0))).ToArray()

一步一步发生的事情是:

"Andy got 6,may got 10, blue got 9, hERald got 0" 
"Andy 6,may 10, blue 9, hERald 0" 'After replace
"Andy" "6" "may" "10" "blue" "9" "hERald" "0" 'After split
"Andy" "may" "blue" "hERald" 'After where