Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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
Regex 在python中使用正则表达式获取数值serarch之前的字符串_Regex_Python 2.7 - Fatal编程技术网

Regex 在python中使用正则表达式获取数值serarch之前的字符串

Regex 在python中使用正则表达式获取数值serarch之前的字符串,regex,python-2.7,Regex,Python 2.7,我有一个字符串,我需要从中使用re来获取“PASS_MAX_DAYS 180”作为输出,然后使用re.sub将其替换为其他值,但是当我执行re时,我无法获取sting >>>_file = '#\nPASS_MAX_DAYS 180\nPASS_MIN_DAYS 1\nPASS_WARN_AGE 8\n' >>> re.findall(r'PASS_MAX_DAYS\s*\b([0-9]{1,2}|1[0-7][0-9]|180)\b', _fi

我有一个字符串,我需要从中使用re来获取“PASS_MAX_DAYS 180”作为输出,然后使用re.sub将其替换为其他值,但是当我执行re时,我无法获取sting

>>>_file = '#\nPASS_MAX_DAYS   180\nPASS_MIN_DAYS   1\nPASS_WARN_AGE   8\n'

>>> re.findall(r'PASS_MAX_DAYS\s*\b([0-9]{1,2}|1[0-7][0-9]|180)\b', _file, re.M)
   ['180']

不确定哪里出了问题,如果使用的正则表达式有任何捕获组,请将捕获组转到非捕获组,因为re.findall函数只返回组中存在的字符

r"PASS_MAX_DAYS\s*\b(?:[0-9]{1,2}|1[0-7][0-9]|180)\b"
示例:

>>> _file = '#\nPASS_MAX_DAYS   180\nPASS_MIN_DAYS   1\nPASS_WARN_AGE   8\n'
>>> re.findall(r'PASS_MAX_DAYS\s*\b(?:[0-9]{1,2}|1[0-7][0-9]|180)\b', _file, re.M)
['PASS_MAX_DAYS   180']

>>>`re.findall(r'PASS_MAX_DAYS\s*\b([0-9]{1,2}1[0-7][0-9]|180)\b',_file,re.M)`['180']很抱歉,之前整个类型都更改了,刚刚节省了我的周末,谢谢。。。我想我必须开始学习更多。谢谢。是的,当我使用搜索时,它正在工作。。以上说法现在有道理了。。需要学习的内容太多了>>>\u new=re.search(r'PASS\u MAX\u DAYS\s*\b([0-9]{1,2}\1[0-7][0-9]| 180)\b',u file,re.M)>>>\u new.group>>\u new.group()'PASS\u MAX\u DAYS 180'