我知道有很多关于SO的问题要求正则表达式的帮助,所以我提前为另一个道歉。
我之前从未使用过正则表达式,而且我已经在网上搜索过(并下载了一个程序来向你展示你的正则表达式的结果)但是我似乎无法想象自己的烦恼因为我知道这很烦人这真的很容易。
我从csv文件中获取了大量文本。大多数行的格式为:
序列号,描述,状态
我需要知道哪些行包含序列号。序列号通常为ABC001格式。但有时会有4个字母,有时是4个数字等。所以我试着制作一个表达式,只检查第一个数字是一个字母,第一个数字前面的最后一个数字是一个数字。我知道这不完美,但对我的目的来说完全没问题。
我试过^ [A-Z] $ [0-9]因为我认为'从A-Z开始,以0-9'结束但是这不起作用。有人可以帮助我,因为它让我发疯!
我不知道这有什么不同,但我正在使用C#。
答案 0 :(得分:2)
我的主张:
^[A-Za-z]{3,4}[0-9]{3,4}
答案 1 :(得分:0)
以第一个逗号为数字前的最后一位数字开头:
^[a-zA-Z][^,]*[0-9],
答案 2 :(得分:0)
如果您不熟悉正则表达式,为什么不在C#中使用普通的字符串操作?我的意思是,如果有人提供解决方案(可能会发生),您很可能无法确认它是否适用于您的所有情况,或者如果需要这样做,将无法进行调整。
答案 3 :(得分:0)
如果你想“以A-Z开头,以0-9结尾”,你可以[A-Z][A-Z0-9]+[0-9]
。您之前的正则表达式不起作用,因为^
和$
查找行的开头和结尾。