Regex 匹配某些字母组合,同时避免误报
我正在尝试匹配美国英语音素,它是一个或两个代表声音的字符() 每个音素必须用空格隔开。出于这个问题的目的(除非您想跟随链接并使用实际的音素),让我们假设音素集由以下内容组成:“a”、“aa”、“ae”、“bb”、“cc”。字符串中可能只有一个音素,或者可能有任意数量的音素组合(以空格分隔)。我如何匹配“a”或“aa”而不匹配“aaa” 以下情况并不完全正确:Regex 匹配某些字母组合,同时避免误报,regex,vb.net,Regex,Vb.net,我正在尝试匹配美国英语音素,它是一个或两个代表声音的字符() 每个音素必须用空格隔开。出于这个问题的目的(除非您想跟随链接并使用实际的音素),让我们假设音素集由以下内容组成:“a”、“aa”、“ae”、“bb”、“cc”。字符串中可能只有一个音素,或者可能有任意数量的音素组合(以空格分隔)。我如何匹配“a”或“aa”而不匹配“aaa” 以下情况并不完全正确: If Regex.Match(TextBox1.Text, "^([(a)(aa)(ae)(bb)(cc)]( )?)+$", R
If Regex.Match(TextBox1.Text, "^([(a)(aa)(ae)(bb)(cc)]( )?)+$", RegexOptions.IgnoreCase).Success Then
MsgBox("valid")
Else
MsgBox("invalid")
End If
'Also doesn't work: If Regex.Match(TextBox1.Text, "^([(a{1,2})(ae)(b{2})(c{2})]( )?)+$",
使用锚:
\b(?:a|aa|ae|bb|cc)\b
下面是如何迭代匹配
Dim RegexObj As New Regex("\b(?:a|aa|ae|bb|cc)\b", RegexOptions.Multiline)
Dim MatchResults As Match = RegexObj.Match(SubjectString)
While MatchResults.Success
' matched text: MatchResults.Value
' match start: MatchResults.Index
' match length: MatchResults.Length
MatchResults = MatchResults.NextMatch()
End While
那会让你大吃一惊的,你一定是打错了。看,啊。我当时正在工作,只能访问那里的VBScript,因此需要进行代码转换。翻译过程中有些东西丢失了。谢谢你的帮助!