Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.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

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正则表达式匹配无法匹配*_Python_Regex - Fatal编程技术网

Python正则表达式匹配无法匹配*

Python正则表达式匹配无法匹配*,python,regex,Python,Regex,需要帮助理解以下示例 >>> re.search('*.script', 'a.script') Traceback (most recent call last): <snipped> re.error: nothing to repeat at position 0 >>> re.search('\*.script', 'a.script') >>> re.search('a.script', 'a.script') <

需要帮助理解以下示例

>>> re.search('*.script', 'a.script')
Traceback (most recent call last):
<snipped>
re.error: nothing to repeat at position 0
>>> re.search('\*.script', 'a.script')
>>> re.search('a.script', 'a.script')
<re.Match object; span=(0, 8), match='a.script'>
>>> re.search(r'\*.script', 'a.script')
>>> re.search(r'\\*.script', 'a.script')
<re.Match object; span=(1, 8), match='.script'>
>>> re.search(r'\\\\*.script', 'a.script')
>>> re.search(r'\\\*.script', 'a.script')
>>> re.search('\\*.script', 'a.script')
>>>
>>重新搜索('*.script',a.script')
回溯(最近一次呼叫最后一次):
re.error:在位置0处没有要重复的内容
>>>重新搜索('\*.script',a.script')
>>>重新搜索('a.script','a.script')
>>>重新搜索(r'\*.script',a.script')
>>>重新搜索(r'\\*.script',a.script')
>>>重新搜索(r'\\*.script',a.script')
>>>重新搜索(r'\\*.script',a.script')
>>>重新搜索('\\*.script',a.script')
>>>
当我逃离*时,没有对手。当我转义两次时,只有。脚本匹配。如何将
*.script
用作正则表达式并匹配完整字符串
a.script

尝试以下模式:
r.*\.script
。(它将匹配以
.script
结尾的任何内容)

如果要匹配字符
,则需要转义
。如果你不逃逸它,你将匹配任何字符<代码>在正则表达式中具有特殊含义

要使用搜索获得所需内容,只需使用
[]
索引即可:


re.search(r'.*\.script','a.script')[0]
re.search(r'\\*\.script','a.script')
我们如何获得完全匹配的
a.script
?另外,我如何强制它从字符串的开头到结尾匹配?当我使用^character时,它不会强制它从一开始就匹配<代码>重新搜索(r“\\*\.script$”,'a.script')
重新搜索(r“^\\\\\.script$”,'a.script')
令人惊讶的是,
$
工作正常。我的正则表达式中有一个错误。。。我误解了你的问题<代码>\\*
是您需要匹配的
*
。。。但是如果你想匹配任何数量的字符,你可以通过
*
来实现。检查我所做的编辑以强制匹配整个字符串:
re.search(r“^.*\.script$”,“a.script”)