在我的源文件中有很多类似以下这样的shortcut:
Ctrl+B E
Ctrl+M
Ctrl+F1
Ctrl+Shift+E
Alt+M
Alt+D
Ctrl+Alt+M E
...我需要取出这样的shortcut, 我自己写了一个,但是没有达到要求。
(Ctrl\+)?(Shift\+)?(Alt\+)?[a-zA-Z0-9]+不知道各位有什么更好的正则表达式呢?希望各位不吝赐教。谢谢
Ctrl+B E
Ctrl+M
Ctrl+F1
Ctrl+Shift+E
Alt+M
Alt+D
Ctrl+Alt+M E
...我需要取出这样的shortcut, 我自己写了一个,但是没有达到要求。
(Ctrl\+)?(Shift\+)?(Alt\+)?[a-zA-Z0-9]+不知道各位有什么更好的正则表达式呢?希望各位不吝赐教。谢谢
解决方案 »
- 哪位用过fyirepoting做报表啊?怎么实现本页合计和至本页合计啊?
- Visual Studio 2010 + Silverlight 4 + WCF RIA Services Beta for VS 2010
- 关于WPF中的数据绑定问题,如何在被绑定的数据变化后,界面自动更新。
- 如何设置CSDN中用户的昵称
- .net url重新定向问题
- 再问一个简单的问题,大虾们请多帮忙,谢谢!
- 菜鸟求解此不足10行代码的意思
- Visual C#中解决方案、项目及文件之间的关系
- 如何实现实例化一个collection????
- C#是否也象JAVA那样,完成的程序在第二台机器上也要装虚拟主机吗?
- GridView 大小,小于外层TD的时候,显示到TD的顶部?怎实现
- insert方法中怎么样查入一个item放到最后?
@"((Ctrl|Shift|Alt)\+)+[a-zA-Z0-9](\s[a-zA-Z0-9])*"
可以匹配LZ给的例子@“((Ctrl|Shift|Alt)\+)+[a-zA-Z0-9]{1,3}(\s[a-zA-Z0-9]{1,3})*”
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string[] str = new string[] { "Ctrl+B E", "Ctrl+M", "Ctrl+F1", "Ctrl+Shift+E", "Alt+M", "Alt+D", "Ctrl+Alt+M E" };
Regex re = new Regex(@"(Ctrl|Alt)\+(Shift\+|Alt\+)?[A-Z0-9\s]*");
foreach (string s in str)
{
if (re.Match(s).Success)
Console.WriteLine(re.Match(s).Value);
} }
}
}
谢谢你的帮助,不过在你的基础上改动了一下
@"((Ctrl|Shift|Alt)\+)+[a-zA-Z0-9]+(\s[a-zA-Z0-9])*"因为我要匹配F1揭帖 给分 大家都有
(Ctrl\+)?(Shift\+)?(Alt\+)?[a-zA-Z0-9]*