我有一个全名作为输入,并希望逐字拆分整个全名,但它应该:
REES-MOGG
REES_MOGG
HYPHEN
例如:
MRS C REES-MOGG
结果:
MRS
C
REES-MOGG
UNDERSCORE
例如:
MRS C REES_MOGG
结果:
MRS
C
REES
MOGG
我目前正在使用以下代码,但徒劳无功:
Dim str As String() = Regex.Split(names, "\s+")
答案 0 :(得分:1)
只需在"\s+|_"
上拆分,它将在空白处和下划线上分开。你的代码是:
Dim str As String() = **Regex.Split(names, "\s+|_")**
也可以在&符号上拆分,只需将|\&
添加到字符串中:
Dim str As String() = **Regex.Split(names, "\s+|_|\&")**
答案 1 :(得分:1)
使用它:
Dim str As String() = Regex.Split(names, "[\s_]+")
答案 2 :(得分:1)
Dim str As String() = names.Split({" ", "_", "&", vbTab}, StringSplitOptions.RemoveEmptyEntries)
答案 3 :(得分:0)
为了让您的脚本在空白和下划线上分割,您只需在正则表达式中的空白字符[ ]
周围添加一个字符组\s
,然后添加任何其他符号你想吐进那个小组。
Dim str As String() = Regex.Split(names, "[\s_]+")
答案 4 :(得分:0)
我对VB .NET了解不多,但你肯定应该更改你的RegEx。
这是一个例子,虽然我在Javascript上测试过。
Dim matchForHyphen As MatchCollection = Regex.Matches("MRS C REES-MOGG","[\w]*[^_]*")
Dim matchForUnderscore As MatchCollection = Regex.Match("MRS C REES_MOGG","[\w]*[^_]*")
然后你应该遍历Match对象以获得结果。 例如。 forFor循环中的matchForHyphen [i]。或者For Each声明
希望有所帮助