我正在阅读我的新食谱时在VB.Net中练习我的正则表达组,并想知道是否可以将一组字符,数字或所需匹配的内容组合成一个组以及其他任何不匹配的内容。另一个。请记住,这只是为了娱乐和关于我的学习。我将匹配的示例字符串。
HelloWorld123
Public Class Form1
Private Sub foo()
Dim text = "HelloWorld123"
Dim m = New System.Text.RegularExpressions.Regex("(?i)[a-z]").Matches(text)
End Sub
End Class
所以现在所有的字母都在0组中,那很好但我怎么能在组0中列出不属于0组的其他东西呢?一个更好的例子就是说我有一个字符列表!“我想在第0组和第1组中的任何其他东西,唯一可能的方式思考,而不是说这可行是重复。([!” “£])([^!”“£])并不是说那些有效,但我关心的是这个列表是否增长,重复也是如此。
我希望那清楚,不确定要谷歌的用途:)
答案 0 :(得分:0)
你可以否定角色类,例如[^a-z]
将匹配除{/ em> a
到z
之外的任何字符,然后使用替换(|
)分别捕获它们:
Dim m = New System.Text.RegularExpressions.Regex("(?i)[a-z]|([^a-z])").Matches(text)
但就此而言,您可以匹配任何字符(.
),如下所示:
Dim m = New System.Text.RegularExpressions.Regex("(?i)[a-z]|(.)").Matches(text)
此处,与第一个模式[a-z]
不匹配的任何内容将与第二个模式.
匹配,并在第1组中捕获。这是有效的,因为正则表达式引擎将尝试查找匹配从交替左侧的第一个模式开始,然后向右移动。