[^.]+\.(txt|html)
我正在学习正则表达式,并试图解析它。
[^。] ^表示“not”,点是一个通配符,表示任何字符,所以这意味着找到一个匹配“not any character”?我还是不明白这一点。谁能解释一下?
加号是Kleene Plus,意思是“1或更多”。所以现在它是“一个或多个”“不是任何角色”。
我得到\.
,这意味着一段时间。
(txt | html)表示与txt文件或html文件匹配。我想在加号后我理解了一切。我不明白为什么它看起来不像DOS等价物我可以这样做:* .txt或*。(txt | html)其中*表示以文件扩展名.txt或.html结尾的所有内容?
在DOS中,[^。]相当于*吗?
答案 0 :(得分:7)
点(.
)在字符类中没有特殊含义,并且不需要转义。
[^.]
表示“任何不是文字.
字符的字符”。 [^.]+
匹配不点的任何字符的一个或多个匹配项。
在大多数正则表达式中,字符类中唯一的特殊字符或元字符是右括号(
]
),反斜杠(\
),插入符号(^
)和连字符(-
)。通常的元字符是字符类中的普通字符,不需要通过反斜杠进行转义。如果你逃避字符类中的常规元字符,你的正则表达式将正常工作,但这样做会大大降低可读性。
答案 1 :(得分:0)
.
在[]
字符类中并不特殊。 [^.]+
表示任何不是点的字符的一次或多次出现(+
)。
如果你执行*.txt
它将不是有效的正则表达式,因为*
不会让字符重复(零次或多次)。