问一个 关于正则表达式匹配字符的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 07:34:26
在一个词法扫描器的程序中 两个地方出现了正则表达式匹配单词 字符的情况

我看不懂 分别是"[\\w^0-9[{}()]+" 和"[\\w]+" 急急急

"[\\w]+"的意思:
只能输入由数字、26个英文字母或者下划线组成的字符串
\w表示由数字、26个英文字母或者下划线组成
+表示可重复 (至少出现一次)

"[\\w^0-9[{}()]+"的意思:
只能输入由26个英文字母或者下划线组成的字符串,不能是数字.
“^”符号称为“否”符号

这不是标准正则. 因为你是在程序中以STRING的方式出现, 所以\要ESCAPE成\\
所以, 真的正则是

[\w^0-9[{}()]+

但这个正则我其实看不懂. 因为^ 在[后面是否的意思.但在\w后面,则就是^了. 我想这个正则是错误的.

我想,它是想让[]中的东西包含所有字母,但却不包含数字和[{}()等符号. 或只是不包含数字,但包含[{}()等符号,不过这样写是不对的.

[\w]+ 就容易了.
\w 代表任意一个字母,数字,或下划线. [] 则代表一个字符.
[\w] 则是一个字符,这个字符可以是字母,数字或下划线.

[\w]+ 则是这个字符可以重复一次以上.

所以
abc
abc_123
abc____aaa
等都是这个范围.
a 是字母,b也是, C也是, 重复三次,是一次以上.所以符合.