如何将“& A-Z”替换为原始文本减去&

时间:2013-03-13 17:48:46

标签: regex vb.net

我正在寻找替代“&”的方法从文本字符串开始,后跟文本。例如;

输入文字:“Ne& w&& Edit Record” 要求的输出:新的&编辑记录“

“Ne& w”的原因是“&”然后将w显示为快捷键(在UI中强调)以及“&&”的原因这是一个单一的“&”显示在文本中。

当使用输入文本作为命令按钮上文本的值时,文本将按预期显示,但是当我将text属性传递给消息框时,它会在消息框对话框中显示输入文本。

我不想使用Tag属性在消息框中存储我想要的消息,因为我将tag属性用于另一个值。

2 个答案:

答案 0 :(得分:2)

试试这个:

Dim input As String = "Ne&w && Edit Record"
Dim output As String = "New & Edit Record"
Dim p As String = Regex.Replace(input, "&(?<first>\w|&)", "${first}")
MessageBox.Show(output = p) 'shows True

在上面的Regex表达式中,我正在捕获一个&符号,后跟一个字母或另一个&符号,并用符号后面的符号替换该序列。 <first>是一个命名组,用于替换正则表达式。

请参阅Regex.Replace on MSDN

答案 1 :(得分:1)

您可以移除所有&个符号后面没有&的符号。像这样匹配他们:

&(?!&)

action

中查看