我想用正则表达式替换字符串,我想将[^ a-zA-Z]替换为空并通过单击Alt按钮将其取回

时间:2015-11-18 11:58:54

标签: regex

我的代码:

private void toggleAlt()
{
    foreach (Button ab in frKeyboard.Children.OfType<Button>().Select(child => child).Where(ab => Regex.IsMatch(ab.Content.ToString(), @"^[a-zA-Z0-9!@#$%^&*+-_?~ {}  .]+$")))
        foreach (Button fb in grKeyboard.Children.OfType<Button>().Select(child => child).Where(fb => Regex.IsMatch(fb.Content.ToString(), @"^[a-zA-Z0-9!@#$%^&*+-_?~ |{}  .]+$")))
        {
            ab.Content = (IsAltEnable ? ab.Content.ToString().Replace("1", "!") : ab.Content.ToString().Replace("!", "1"));
            ab.Content = (IsAltEnable ? ab.Content.ToString().Replace('2', '@') : ab.Content.ToString().Replace('@', '2'));
            ab.Content = (IsAltEnable ? ab.Content.ToString().Replace('3', '#') : ab.Content.ToString().Replace('#', '3'));
            ab.Content = (IsAltEnable ? ab.Content.ToString().Replace('4', '$') : ab.Content.ToString().Replace('$', '4'));
            ab.Content = (IsAltEnable ? ab.Content.ToString().Replace('5', '%') : ab.Content.ToString().Replace('%', '5'));
            ab.Content = (IsAltEnable ? ab.Content.ToString().Replace('6', '^') : ab.Content.ToString().Replace('^', '6'));
            ab.Content = (IsAltEnable ? ab.Content.ToString().Replace('7', '&') : ab.Content.ToString().Replace('&', '7'));
            ab.Content = (IsAltEnable ? ab.Content.ToString().Replace('8', '*') : ab.Content.ToString().Replace('*', '8'));
            ab.Content = (IsAltEnable ? ab.Content.ToString().Replace("9", "-") : ab.Content.ToString().Replace("-", "9"));
            ab.Content = (IsAltEnable ? ab.Content.ToString().Replace('0', '+') : ab.Content.ToString().Replace('+', '0'));
            ab.Content = (IsAltEnable ? ab.Content.ToString().Replace('.', '?') : ab.Content.ToString().Replace('?', '.'));
            fb.Content = (IsAltEnable ? fb.Content.ToString().Replace("l", "~") : fb.Content.ToString().Replace("~", "l"));
            fb.Content = (IsAltEnable ? fb.Content.ToString().Replace("o", "{") : fb.Content.ToString().Replace("{", "o"));
            fb.Content = (IsAltEnable ? fb.Content.ToString().Replace("p", "}") : fb.Content.ToString().Replace("}", "p"));
            fb.Content = (IsAltEnable ? fb.Content.ToString().Replace('z', '|') : fb.Content.ToString().Replace('|', 'z'));
        }
}

xaml代码如下:

<Grid Name="frKeyboard" Width="Auto" Height="Auto">
            <Rectangle Height="2" HorizontalAlignment="Stretch" Stroke="#6F9EC1" VerticalAlignment="Top"/>
        <Button Content="1" Margin="4,8,0,0" Click="btnKeyboard_Click"/>
        <Button Content="2" Margin="64,8,0,0" Click="btnKeyboard_Click"/>
        <Button Content="3" Margin="124,8,0,0" Click="btnKeyboard_Click"/>
        <Button Content="4" Margin="184,8,0,0" Click="btnKeyboard_Click"/>
        <Button Content="5" Margin="244,8,0,0" Click="btnKeyboard_Click"/>
        <Button Content="6" Margin="304,8,0,0" Click="btnKeyboard_Click"/>
        <Button Content="7" Margin="364,8,0,0" Click="btnKeyboard_Click"/>
        <Button Content="8" Margin="424,8,0,0" Click="btnKeyboard_Click"/>
        <Button Content="9" Margin="484,8,0,0" Click="btnKeyboard_Click"/>
        <Button Content="0" Margin="544,8,0,0" Click="btnKeyboard_Click"/>  
        <Button Content="." Margin="544,188,0,0"  Click="btnKeyboard_Click"/>
        <!--<Button Content="bv" Margin="604,8,0,0" Width="60" Visibility="Visible" FontSize="48" Click="btnKeyboard_Click" IsEnabled="{Binding ElementName=AlphaNumericKeyboardControl, Path=IsAltEnable, Mode=TwoWay}"/>-->



        </Grid>
        <Grid Name="grKeyboard" Width="Auto" Height="Auto">
        <Rectangle Height="2" HorizontalAlignment="Stretch" Stroke="#6F9EC1" VerticalAlignment="Top"/>




            <Button Content=""  Margin="34,68,0,0" Click="btnKeyboard_Click" IsEnabled="{Binding Path=btnq, Mode=TwoWay}"/>
            <Button Content="q"  Margin="34,68,0,0" Click="btnKeyboard_Click" Style="{StaticResource TransparentStyle}" IsEnabled="{Binding ElementName=AlphaNumericKeyboardControl, Path=IsAltEnable, Mode=TwoWay}"/>
            <Button Content="w" x:Name="btnw" Margin="94,68,0,0" Click="btnKeyboard_Click"/>

            <Button Content="e" Margin="154,68,0,0" Click="btnKeyboard_Click"/>
            <Button Content="r" Margin="214,68,0,0" Click="btnKeyboard_Click"/>
            <Button Content="t" Margin="274,68,0,0" Click="btnKeyboard_Click"/>
            <Button Content="" Margin="334,68,0,0" Click="btnKeyboard_Click" />
            <Button Content="y" Margin="334,68,0,0" Click="btnKeyboard_Click" IsEnabled="{Binding ElementName=AlphaNumericKeyboardControl, Path=IsAltEnabled, Mode=TwoWay}"/>

            <Button Content="u" Margin="394,68,0,0" Click="btnKeyboard_Click"/>
            <Button Content="i" Margin="454,68,0,0" Click="btnKeyboard_Click"/>
            <Button Content="l" Margin="544,128,0,0" Click="btnKeyboard_Click"/>
            <Button Content="!" Margin="604,8,0,0" Width="60" FontFamily="Wingdings 3" FontSize="48" Click="btnClear_Click"/>
            <Button Content="a" Margin="64,128,0,0" Click="btnKeyboard_Click"/>
            <Button Content="s" Margin="124,128,0,0" Click="btnKeyboard_Click"/>
            <Button Content="d" Margin="184,128,0,0" Click="btnKeyboard_Click"/>
            <Button Content="f" Margin="245,129,0,0" Click="btnKeyboard_Click"/>
            <Button Content="g" Margin="304,128,0,0" Click="btnKeyboard_Click"/>
            <Button Content="h" Margin="364,128,0,0" Click="btnKeyboard_Click"/>
            <Button Content="j" Margin="424,128,0,0" Click="btnKeyboard_Click"/>
            <Button Content="k" Margin="484,128,0,0" Click="btnKeyboard_Click"/>
            <Button Content="o" Margin="514,68,0,0" Click="btnKeyboard_Click"/>
            <Button Content="p" Margin="574,68,0,0" Click="btnKeyboard_Click"/>
            }

我想用正则表达式替换字符串,我想将[^ a-zA-Z]替换为空并通过单击Alt按钮将其取回。

其实我正在处理一个应用程序,我想切换我的按钮。

这是我现有的键盘视图: keyboard view

我想在Alt Press上这样做 keyboard view after Alt

0 个答案:

没有答案