字符串的正则表达式以字母/ _开头和(可能)以字母/数字/ _开头

时间:2012-06-02 18:31:22

标签: .net regex f#

为什么这个正则表达式不适用于字符串“Array a”?

let mutable line = "Array a"
let regexIdentifier = new Regex("^[a-zA-Z_][a-zA-Z0-9_]*$")   
line <- regexIdentifier.Replace(line, "\r\n$&\r\n")   //KEYWORDS separation
Console.WriteLine(line)   

(我希望程序将“Array”和“a”分开到不同的行)

3 个答案:

答案 0 :(得分:1)

"Array a"中的空格不匹配。

最好使用regexp_like "^[\w_]+ [\w_]+$"

答案 1 :(得分:0)

此模式将“阵列a”分成两个不同的匹配

string rPattern = @"\b[A-Za-z_][A-Za-z_0-9]+\b";

也适用于像

这样的字符串
"Exam_ple1 a9"
  • \b限制字边界处的模式。 (这回来了 如果您之间有多个空格,则输入文本的两个匹配项
  • 第一个字符应该是范围A-Za-z或下划线(不是数字)。
  • 以下字符应来自范围A-Za-z0-9或下划线。

答案 2 :(得分:0)

^表示行顶部
$ mean end of line
^ [a-zA-Z _] [a-zA-Z0-9 _] * $表示从头到尾

使用@“[a-zA-Z _] [a-zA-Z0-9 _] *”