按照给定的模式搜索单词
searching word following a giving pattern
我想得到字符串中的单词'MASTER_INACTIVE'
:
'p_esco_link->state = MASTER_INACTIVE; /*M-t10*/'
通过搜索正则表达式 'p_esco_link->state ='
找到以下单词。
我必须替换访问 API 函数的日期。我在 python 3.6 中尝试了一些正则表达式,但它不起作用。
pattern = '(?<=\bp_esco_link->state =\W)\w+'
if __name__ == "__main__":
syslogger.info(sys.argv)
if version_info.major != 3:
raise Exception('Olny work on Python 3.x')
with open(cFile, encoding='utf-8') as file_obj:
lineNum = 0
for line in file_obj:
print(len(line))
re_obj = re.compile(pattern)
result = re.search(pattern, line)
lineNum += 1
#print(result)
if result:
print(str(lineNum) + ' ' +str(result.span()) + ' ' + result.group())
excepted Python re模块可以找到'MASTER_INACTIVE'
的位置,放入result.group()
。
错误消息是 Python re 模块什么也没找到。
您的模式运行良好,
只需更改代码中的下面一行,
pattern = r'(?<=\bp_esco_link->state =\W)\w+' # add r prefix
检查这个示例作品,我添加了 line
作为你的字符串。
import re
pattern = r'(?<=\bp_esco_link->state =\W)\w+'
line = 'p_esco_link->state = MASTER_INACTIVE; /*M-t10*/'
re_obj = re.compile(pattern)
result = re.search(pattern, line)
print(result.span()) # (21, 36)
print(result.group()) # 'MASTER_INACTIVE'
检查以下问题以更深入地了解 'r'
前缀,
- Python regex - r prefix
- What exactly do “u” and “r” string flags do, and what are raw string literals?
- What does preceding a string literal with “r” mean? [duplicate]
我想得到字符串中的单词'MASTER_INACTIVE'
:
'p_esco_link->state = MASTER_INACTIVE; /*M-t10*/'
通过搜索正则表达式 'p_esco_link->state ='
找到以下单词。
我必须替换访问 API 函数的日期。我在 python 3.6 中尝试了一些正则表达式,但它不起作用。
pattern = '(?<=\bp_esco_link->state =\W)\w+'
if __name__ == "__main__":
syslogger.info(sys.argv)
if version_info.major != 3:
raise Exception('Olny work on Python 3.x')
with open(cFile, encoding='utf-8') as file_obj:
lineNum = 0
for line in file_obj:
print(len(line))
re_obj = re.compile(pattern)
result = re.search(pattern, line)
lineNum += 1
#print(result)
if result:
print(str(lineNum) + ' ' +str(result.span()) + ' ' + result.group())
excepted Python re模块可以找到'MASTER_INACTIVE'
的位置,放入result.group()
。
错误消息是 Python re 模块什么也没找到。
您的模式运行良好,
只需更改代码中的下面一行,
pattern = r'(?<=\bp_esco_link->state =\W)\w+' # add r prefix
检查这个示例作品,我添加了 line
作为你的字符串。
import re
pattern = r'(?<=\bp_esco_link->state =\W)\w+'
line = 'p_esco_link->state = MASTER_INACTIVE; /*M-t10*/'
re_obj = re.compile(pattern)
result = re.search(pattern, line)
print(result.span()) # (21, 36)
print(result.group()) # 'MASTER_INACTIVE'
检查以下问题以更深入地了解 'r'
前缀,
- Python regex - r prefix
- What exactly do “u” and “r” string flags do, and what are raw string literals?
- What does preceding a string literal with “r” mean? [duplicate]