Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在re中识别为大写字母的组合[';-]_Python_Regex - Fatal编程技术网

Python 在re中识别为大写字母的组合[';-]

Python 在re中识别为大写字母的组合[';-],python,regex,Python,Regex,为什么在re中['-\]被识别为大写字母?如何防止这种情况发生,以便更换3个不同的符号:”、-和 re.sub("['-_]", '', 'DHourly') 输出:'ourly' 在这里使用python 3.8.10。对于此类问题,您可以使用。这与包含该范围内大写字母的ASCII代码39到95相匹配 说明: […]:字符集。匹配集合中的任何字符 ”——:范围。匹配范围为'到.(字符代码39到95)的字符。区分大小写 将连字符移动到末尾或开头,否则它将匹配一个范围。但为

为什么在re中
['-\]
被识别为大写字母?如何防止这种情况发生,以便更换3个不同的符号:
-

re.sub("['-_]", '', 'DHourly')
输出:
'ourly'


在这里使用python 3.8.10。

对于此类问题,您可以使用。这与包含该范围内大写字母的ASCII代码39到95相匹配

说明:

  • […]
    :字符集。匹配集合中的任何字符
  • ”——
    :范围。匹配范围为
    '
    .
    (字符代码39到95)的字符。区分大小写

将连字符移动到末尾或开头,否则它将匹配一个范围。但为什么会出现这种行为?具体来说,这是因为
-
(位于组中其他两个字符之间)表示一个字符范围,
'
具有ASCII代码39,
具有ASCII代码95,它们之间都是大写字母(ASCII 65-96)。将
-
放在组的最开头或最末尾将防止将其解释为一个范围。您将输入的字符范围与“到”之间的字符范围进行比较,其中碰巧包括大写字母。类似于此,请查看此链接并将鼠标悬停在连字符上。请不要显示文本图像。复制文本并粘贴到这里很容易。