本文整理匯總了Python中re.findall方法的典型用法代碼示例。如果您正苦於以下問題:Python re.findall方法的具體用法?Python re.findall怎麽用?Python re.findall使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類re
的用法示例。
在下文中一共展示了re.findall方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: context_function_signatures
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def context_function_signatures(context, vcc_path=VCC_PATH):
ctx_info = subprocess.check_output([vcc_path, '-X', context])
ctx_info = ctx_info.decode('ascii')
sigs = []
for s in re.findall('(\w+(\[\])?) (\w+)\((.*)\)', ctx_info):
sig_str = '%s %s(%s)' % (s[0], s[2], s[3])
if s[3] == 'void':
hint_str = ''
else:
hint_str = '%s\n(%s)' % (s[0], s[3].rstrip().lstrip().rstrip(';'))
args = [x.strip() for x in s[3].split(';')]
sigs.append({'returns':s[0], 'name':s[2], 'ctx':context, 'args':args, 'str':sig_str,
'hint':hint_str})
return sigs
示例2: test_tutorial_tested
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def test_tutorial_tested():
"""
Make sure that every tutorial that isn't in the whitelist
has been added to the tutorial test file
"""
tutorial_test_file = os.path.join(os.path.dirname(__file__), 'test_tutorials.py')
f = open(tutorial_test_file, 'r')
tutorial_test_text = '\n'.join(f.readlines())
tutorial_path = os.path.join(os.path.dirname(__file__), '..', '..', 'docs', 'tutorials')
tutorials = glob.glob(os.path.join(tutorial_path, '**', '*.md'))
tested_tutorials = set(re.findall(r"assert _test_tutorial_nb\('(.*)'\)", tutorial_test_text))
for tutorial in tutorials:
friendly_name = '/'.join(tutorial.split('/')[-2:]).split('.')[0]
if friendly_name not in tested_tutorials and friendly_name+".md" not in whitelist_set:
assert False, "{} has not been added to the tests/tutorials/test_tutorials.py test_suite".format(friendly_name)
示例3: parse_rec
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def parse_rec(filename):
""" Parse a PASCAL VOC xml file """
tree = ET.parse(filename)
objects = []
for obj in tree.findall('object'):
obj_struct = {}
obj_struct['name'] = obj.find('name').text
obj_struct['pose'] = obj.find('pose').text
obj_struct['truncated'] = int(obj.find('truncated').text)
obj_struct['difficult'] = int(obj.find('difficult').text)
bbox = obj.find('bndbox')
obj_struct['bbox'] = [int(bbox.find('xmin').text),
int(bbox.find('ymin').text),
int(bbox.find('xmax').text),
int(bbox.find('ymax').text)]
objects.append(obj_struct)
return objects
示例4: parse_labelme_poly
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def parse_labelme_poly(filename):
""" Parse a labelme xml file """
tree = ET.parse(filename)
objects = []
for obj in tree.findall('object'):
obj_struct = {}
obj_struct['name'] = obj.find('name').text
obj_struct['deleted'] = obj.find('deleted').text
obj_struct['verified'] = int(obj.find('verified').text)
obj_struct['occluded'] = obj.find('occluded').text
obj_struct['attributes'] = obj.find('attributes').text
poly = obj.find('polygon').findall('pt')
obj_struct['polygon'] = []
for point in poly:
pt = [point.find('x').text, point.find('y').text]
obj_struct['polygon'] = obj_struct['polygon'] + pt
objects.append(obj_struct)
return objects
示例5: reWriteImgWithMask
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def reWriteImgWithMask(srcpath, dstpath, gtpath, srcform, dstform):
namelist = GetFileFromThisRootDir(gtpath)
for fullname in namelist:
objects = parse_bod_poly(fullname)
mask_polys = []
for obj in objects:
clsname = obj['name']
matches = re.findall('area|mask', clsname)
if 'mask' in matches:
#print('mask:')
mask_polys.append(shgeo.Polygon(obj['poly']))
elif 'area' in matches:
#print('area:')
mask_polys.append(shgeo.Polygon(obj['poly']))
basename = mybasename(fullname)
imgname = os.path.join(srcpath, basename + srcform)
img = cv2.imread(imgname)
dstname = os.path.join(dstpath, basename + dstform)
if len(mask_polys) > 0:
saveimageWithMask(img, dstname, mask_polys)
示例6: __init__
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def __init__(self, board_url_or_id):
board_id = str(board_url_or_id)
self.fetcher = HuaBanFetcher()
if "http" in board_id:
board_id = re.findall(r'boards/(\d+)/', board_id)[0]
self.id = board_id
path = "/boards/{board_id}/".format(
board_id=board_id,
)
self.base_url = urljoin(BASE_URL, path)
self.further_pin_url_tpl = urljoin(
self.base_url,
"?{random_string}"
"&max={pin_id}"
"&limit=20"
"&wfl=1"
)
# uninitialized properties
self.pin_count = None
self.title = None
self.description = None
self._pins = []
self._init_board()
示例7: _has_modified_includes
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def _has_modified_includes(cls, file_path, modified_after, depth=4):
if depth == 0:
return False
include_pattern = '#include\s*"(.*)"'
with open(file_path) as f:
content = f.read()
for included_path in re.findall(include_pattern, content):
for compiler_include_path in cls._program_directories:
included_file_path = os.path.join(compiler_include_path, included_path)
if not os.path.exists(included_file_path):
continue
included_file_mtime = os.path.getmtime(included_file_path)
if included_file_mtime > modified_after:
return True
elif cls._has_modified_includes(included_file_path, modified_after, depth=depth - 1):
return True
return False
示例8: adventure_command
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def adventure_command(self, ctx, *, text):
"Do something in your adventure"
words = re.findall(r'\w+', text)
if words:
# await self.baudout(ctx, game.do_command(words))
channel = ctx.message.channel
server = ctx.message.server
author = ctx.message.author
try:
team = self.players[server.id][channel.id][author.id]
except:
await self.bot.reply('You are not in an adventure. If your team has embarked on one, join them using `{}adventure join`, otherwise embark on your own adventure.'.format(ctx.prefix))
return
await self.baudout(ctx, self.game_loops[server.id][team][channel.id]["GAME"].do_command(words, ctx, self))
pass
# edited - irdumbs
示例9: extract_fields_db2
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def extract_fields_db2(obj, line, field_name_regex):
line = '#'.join(re.split('\s*#', line))
last_key = ''
field_names = re.findall(field_name_regex, line)
for field in reversed(field_names):
split_at = line.find(field) + len(field)
field_name = re.split('\s*:', field)[0]
# don't overwrite existing fields
if field_name in obj:
continue
else:
obj[field_name] = ' '.join(line[split_at:].split())
if not last_key:
last_key = field_name
line = line[:split_at - len(field)]
return last_key
示例10: _get_path_parameters
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def _get_path_parameters(self):
"""
Creates parameters described in url path
:return: list of parameters
:rtype: list
"""
params = []
url_parameters = re.findall(r'/{(.+?)}', self.introspector.path)
for parameter in url_parameters:
params.append({
'name': parameter,
'type': 'string',
'in': 'path',
'required': True
})
return params
示例11: parse_md
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def parse_md(self):
""" Return the ungapped reference sequence from the MD tag, if present.
"""
try:
return self._cache['parse_md']
except KeyError:
pass
try:
md = self['MD']
except KeyError:
raise KeyError('MD tag not found in SAM record.')
ref_seq = list(self.gapped('seq'))
md_match = re.findall(r"([0-9]+)\^?([A-Z]+)?", md)
ref_seq_i = 0
for i, b in md_match:
ref_seq_i += int(i)
for mismatch in b:
try:
ref_seq[ref_seq_i] = mismatch
except IndexError:
raise IndexError(locals())
ref_seq_i += 1
self._cache['parse_md'] = ref_seq
return ref_seq
示例12: ParseNestedParen
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def ParseNestedParen(string, level):
"""
Generate strings contained in nested (), indexing i = level
"""
if len(re.findall(r"\(", string)) == len(re.findall(r"\)", string)):
LeftRightIndex = [x for x in zip(
[Left.start()+1 for Left in re.finditer(r'\(', string)],
reversed([Right.start() for Right in re.finditer(r'\)', string)]))]
elif len(re.findall(r"\(", string)) > len(re.findall(r"\)", string)):
return ParseNestedParen(string + ')', level)
elif len(re.findall(r"\(", string)) < len(re.findall(r"\)", string)):
return ParseNestedParen('(' + string, level)
else:
return 'fail'
return [string[LeftRightIndex[level][0]:LeftRightIndex[level][1]]]
示例13: scale_times_to_generate
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def scale_times_to_generate(times_to_generate: int, time_frame: str):
if 'MIN' in time_frame.upper():
times_to_generate *= int(re.findall(r'\d+', time_frame)[0])
elif 'H' in time_frame.upper():
times_to_generate *= int(re.findall(r'\d+', time_frame)[0]) * 60
elif 'D' in time_frame.upper():
times_to_generate *= int(re.findall(r'\d+', time_frame)[0]) * 60 * 24
elif 'W' in time_frame.upper():
times_to_generate *= int(re.findall(r'\d+', time_frame)[0]) * 60 * 24 * 7
elif 'M' in time_frame.upper():
times_to_generate *= int(re.findall(r'\d+', time_frame)[0]) * 60 * 24 * 7 * 30
else:
raise ValueError('Timeframe must be either in minutes (min), hours (H), days (D), weeks (W), or months (M)')
return times_to_generate
示例14: test_string_boundaries
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def test_string_boundaries(self):
# See http://bugs.python.org/issue10713
self.assertEqual(re.search(r"\b(abc)\b", "abc").group(1),
"abc")
# There's a word boundary at the start of a string.
self.assertTrue(re.match(r"\b", "abc"))
# A non-empty string includes a non-boundary zero-length match.
self.assertTrue(re.search(r"\B", "abc"))
# There is no non-boundary match at the start of a string.
self.assertFalse(re.match(r"\B", "abc"))
# However, an empty string contains no word boundaries, and also no
# non-boundaries.
self.assertEqual(re.search(r"\B", ""), None)
# This one is questionable and different from the perlre behaviour,
# but describes current behavior.
self.assertEqual(re.search(r"\b", ""), None)
# A single word-character string has two boundaries, but no
# non-boundary gaps.
self.assertEqual(len(re.findall(r"\b", "a")), 2)
self.assertEqual(len(re.findall(r"\B", "a")), 0)
# If there are no words, there are no boundaries
self.assertEqual(len(re.findall(r"\b", " ")), 0)
self.assertEqual(len(re.findall(r"\b", " ")), 0)
# Can match around the whitespace.
self.assertEqual(len(re.findall(r"\B", " ")), 2)
示例15: __norm_cat
# 需要導入模塊: import re [as 別名]
# 或者: from re import findall [as 別名]
def __norm_cat(self, label, hashes):
if not label:
return []
# Initialize list of tokens to return
ret = []
# Split label into tokens and process each token
for token in re.split("[^0-9a-zA-Z]", label):
# Remove leading and trailing backspace from token
# and convert to lowercase
token = token.lower()
# Remove digits at the end
# FIXME: What if it is a hash, and removes digits at the end???
end_len = len(re.findall("\d*$", token)[0])
if end_len:
token = token[:-end_len]
# Ignore short token
if len(token) < 4:
continue
# Ignore token if prefix of a hash of the sample
# Most AVs use MD5 prefixes in labels,
# but we check SHA1 and SHA256 as well
hash_token = False
for hash_str in hashes:
if hash_str[0:len(token)] == token:
hash_token = True
break
if hash_token:
continue
for keys, values in self.cat.iteritems():
if token in values:
token = keys
ret.append(token)
break
# Add token
return ret