lzb1001 发表于 2022-4-28 12:34:15

&[#] 为什么表示:开始数字引用

本帖最后由 lzb1001 于 2022-4-28 12:42 编辑

>>> charref = re.compile(r'''   
&[#]                           # 开始数字引用
(
        0+            # 八进制格式
        |+            # 十进制格式
        |x+    # 十六进制格式
)
;                            # 结尾分号
''',re.X)

看了下书面教材和视频讲解,都没有提到(包括之前):&、#、[#]这三个在正则表达式中的意义、用法和举例 ,所以此处举例中突然用到,有点丈二和尚摸不着头脑没看懂呢

另外一个问题:我发现下面这样写的话,还不会忘记各种括号、引号的对称使用和缩进(比如上面红色部分需要手工添加缩进)的使用
>>> charref = re.compile('&[#](0+|+|x+);')
一旦开启verbose的写法,好像会忘记对称使用和缩进的使用,不知道是不是正常的呢?还是因为初学者还不熟悉语法都一样的通病呢?

isdkz 发表于 2022-4-28 14:32:12

本帖最后由 isdkz 于 2022-4-28 14:34 编辑

& 和 # 并没有什么特殊的含义,只是作为普通的字符,而 [] 则是匹配 [] 里面的任一字符,

这里之所以给 # 加上 [] 是因为在 verbose 模式下 # 会被当成注释,而在 [] 里面则不会被当成注释,

verbose 模式也没有那么复杂,就是忽略空白字符(包括换行,制表符,空格),还有把 # 当成注释
页: [1]
查看完整版本: &[#] 为什么表示:开始数字引用