3

为什么这个正则表达式不适用于字符串“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”分开到不同的行)

4

3 回答 3

1

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

更好地使用正则表达式"^[\w_]+ [\w_]+$"

于 2012-06-02T18:39:25.223 回答
0

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

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

也适用于类似的字符串

"Exam_ple1 a9"
  • 限制了单词边界处的\b模式。(如果您之间有多个空格,这也会为输入文本返回两个匹配项)
  • 第一个字符应来自 A-Za-z 范围或下划线(不是数字)。
  • 以下字符应来自范围 A-Za-z0-9 或下划线。
于 2012-06-02T18:47:25.813 回答
0

^ 表示行首
$ 表示行尾
^[a-zA-Z_][a-zA-Z0-9_]*$ 表示从上到尾

使用@"[a-zA-Z_][a-zA-Z0-9_]*"

于 2012-06-02T20:57:54.773 回答