帮助正则表达式模式

时间:2009-04-01 00:31:52

标签: c# regex

我有一个txt文件,每行都有一组随机字符串,我只需要选择只包含字符的行:1234567890qwertyuiopasdfghjklzxcvbnm -._~

我正在逐行阅读并通过char验证char,我不认为这是最好的方法,我认为RegEx是完美的。

那么有人可以帮助解决这个模式吗?

谢谢!

3 个答案:

答案 0 :(得分:9)

 /^[-0-9a-z._~]*$/

 ^       :: matches the start of a string/start of a line
 [       :: start of a character class, means match any one of the contained characters
 -       :: dash has a special meaning in character classes, so to avoid having it interpreted for its special meaning, list it first
 0-9     :: shorthand for 0123456789 in a character class
 a-z     :: shorthand for abcdefghijklmnopqrstuvwxyz in a character class
 ._~     :: means exactly these characters in a character class
 ]       :: end of the character class 
 *       :: match zero or more of the previous atom (in this case, the character class)
 $       :: matches the end of a string/end of a line

答案 1 :(得分:2)

如果我理解你,你可以这样做:

/^([-0-9a-zA-Z._~]\n)+$/

不区分大小写,检查行尾并且与空行不匹配。

答案 2 :(得分:0)

认识到正则表达式应该等同于^[1234567890qwertyuiopasdfghjklzxcvbnm\-._~]*$并不需要太多。从那里,您可以简单地缩小范围,替换为0-9a-z等。在使用从其他人那里得到的答案之前,您应该先学习正则表达式的基础知识。