正则表达式似乎无法正确处理与号

时间:2019-08-13 12:22:44

标签: regex vb.net

我正在使用RegEx [^A-Za-z0-9-_ &]删除除A-Z,a-z,0-9,-,_,空格和&之外的所有内容。

它与&符号完全分开。如果我连续输入多个,则不允许在其他字符之间使用&符号。

当我在https://regexr.com/上进行检查时,它可以完美工作,所以这是VB中的特定功能。

  • 我试图更改&符在RegEx中的位置。

  • 我尝试用反斜杠将其转义。

  • 我尝试使用Regex.Escape

  • 我尝试使用十六进制字符而不是&符。

下面是我的测试代码,它使用标签控件来显示正则表达式在做什么:

Private Sub TextBoxSearch_TextChanged(sender As Object, e As EventArgs) Handles TextBoxSearch.TextChanged
    Dim search As String = Regex.Replace(TextBoxSearch.Text, "[^A-Za-z0-9-_ &]", "")
    Label1.Text = search
End Sub

1 个答案:

答案 0 :(得分:2)

某些菜单项等可以分配有快捷键,例如:

enter image description here

为表示要在下划线上加下划线,使用了“&”号。因此,在上图中,“历史记录”菜单将其文本设置为“ Hi&story”。

的副作用是,如果控件文本(例如标签)中的“&”号使用该功能,则“&”号将消失并且下划线将带有下划线-除非您具有“ &&” ”表示仅显示一个“&”。

要为控件关闭该行为,请将.UseMnemonic Property设置为False,例如

Label1.UseMnemonic = False