本文整理汇总了Python中re.Match方法的典型用法代码示例。如果您正苦于以下问题:Python re.Match方法的具体用法?Python re.Match怎么用?Python re.Match使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类re
的用法示例。
在下文中一共展示了re.Match方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_regex01
# 需要导入模块: import re [as 别名]
# 或者: from re import Match [as 别名]
def test_regex01():
# <re.Match object; span=(0, 3), match='终结者'>
result1 = re.match(r"终结者", "终结者1")
print(result1)
# <re.Match object; span=(0, 4), match='终结者1'>
result2 = re.match(r"终结者1", "终结者2")
print(result2)
# 有返回值group取出来自己期望的值
if result2:
print(result2.group())
# \d
result3 = re.match(r"终结者\d", "终结者1").group()
result4 = re.match(r"终结者\d", "终结者2").group()
result5 = re.match(r"终结者\d", "终结者3").group()
print(result3)
print(result4)
print(result5)
示例2: test_find_token_valid_match
# 需要导入模块: import re [as 别名]
# 或者: from re import Match [as 别名]
def test_find_token_valid_match(self, token_re, token_cls, is_valid_id, is_valid_timestamp):
"""The first match with a valid user ID and timestamp should be returned as a `Token`."""
matches = [
mock.create_autospec(Match, spec_set=True, instance=True),
mock.create_autospec(Match, spec_set=True, instance=True),
]
tokens = [
mock.create_autospec(Token, spec_set=True, instance=True),
mock.create_autospec(Token, spec_set=True, instance=True),
]
token_re.finditer.return_value = matches
token_cls.side_effect = tokens
is_valid_id.side_effect = (False, True) # The 1st match will be invalid, 2nd one valid.
is_valid_timestamp.return_value = True
return_value = TokenRemover.find_token_in_message(self.msg)
self.assertEqual(tokens[1], return_value)
token_re.finditer.assert_called_once_with(self.msg.content)
示例3: _has_watch_regex_match
# 需要导入模块: import re [as 别名]
# 或者: from re import Match [as 别名]
def _has_watch_regex_match(text: str) -> Union[bool, re.Match]:
"""
Return True if `text` matches any regex from `word_watchlist` or `token_watchlist` configs.
`word_watchlist`'s patterns are placed between word boundaries while `token_watchlist` is
matched as-is. Spoilers are expanded, if any, and URLs are ignored.
"""
if SPOILER_RE.search(text):
text = expand_spoilers(text)
# Make sure it's not a URL
if URL_RE.search(text):
return False
for pattern in WATCHLIST_PATTERNS:
match = pattern.search(text)
if match:
return match
示例4: _processLength
# 需要导入模块: import re [as 别名]
# 或者: from re import Match [as 别名]
def _processLength(self, lengthMatch):
"""
Processes the length definition of a netstring.
Extracts and stores in C{self._expectedPayloadSize} the number
representing the netstring size. Removes the prefix
representing the length specification from
C{self._remainingData}.
@raise NetstringParseError: if the received netstring does not
start with a number or the number is bigger than
C{self.MAX_LENGTH}.
@param lengthMatch: A regular expression match object matching
a netstring length specification
@type lengthMatch: C{re.Match}
"""
endOfNumber = lengthMatch.end(1)
startOfData = lengthMatch.end(2)
lengthString = self._remainingData[:endOfNumber]
# Expect payload plus trailing comma:
self._expectedPayloadSize = self._extractLength(lengthString) + 1
self._remainingData = self._remainingData[startOfData:]
示例5: match_splitter
# 需要导入模块: import re [as 别名]
# 或者: from re import Match [as 别名]
def match_splitter(match: re.Match) -> Tuple[str, str, str, str]:
"""Splits an :obj:`re.Match` to get the required attributes for substitution.
Unescapes the slashes as well because this is Python.
Args:
match (:obj:`Match<re.match>`):
Match object to split.
Returns:
(``str``, ``str``, ``str``, ``str``):
A tuple of strings containing
line, regexp, replacement and flags respectively.
"""
li = match.group(1)
fr = match.group(3)
to = match.group(4) if match.group(4) else ''
to = re.sub(r'\\/', '/', to)
to = re.sub(r'(?<!\\)\\0', r'\g<0>', to)
fl = match.group(5) if match.group(5) else ''
return li, fr, to, fl
示例6: construct_resource_links
# 需要导入模块: import re [as 别名]
# 或者: from re import Match [as 别名]
def construct_resource_links(self, erly_iframe_src: str) -> Dict:
search_params: Dict = dict(
parse.parse_qsl(
parse.urlparse(erly_iframe_src).query
)
)
if not {"conf", "access_token"}.issubset(set(search_params)):
return {"fatal_error": "Iframe src search params structure is unknown"}
webinar_id_match: Union[Match, None] = match(
r"^webinar-(\d+)$", search_params.get("conf")
)
if not webinar_id_match:
return {"fatal_error": "Unable to extract webinar id"}
return {
"video": f"https://storage.netology-group.services/api/v1/buckets/ms.webinar.foxford.ru/sets/{webinar_id_match[1]}/objects/mp4?access_token={search_params.get('access_token')}",
"events": f"https://storage.netology-group.services/api/v1/buckets/meta.webinar.foxford.ru/sets/{webinar_id_match[1]}/objects/events.json?access_token={search_params.get('access_token')}"
}
示例7: search_in_comments
# 需要导入模块: import re [as 别名]
# 或者: from re import Match [as 别名]
def search_in_comments(
comments: List[Union[str, Comment]], filter_regex: str
) -> Optional[Match[str]]:
"""
Find match in pull-request description or comments.
:param comments: [str or PRComment]
:param filter_regex: filter the comments' content with re.search
:return: re.Match or None
"""
pattern = re.compile(filter_regex)
for comment in comments:
if isinstance(comment, Comment):
comment = comment.body
re_search = pattern.search(comment)
if re_search:
return re_search
return None
示例8: unmatched
# 需要导入模块: import re [as 别名]
# 或者: from re import Match [as 别名]
def unmatched(match):
"""Return unmatched part of re.Match object."""
start, end = match.span(0)
return match.string[:start]+match.string[end:]
示例9: test_find_token_invalid_matches
# 需要导入模块: import re [as 别名]
# 或者: from re import Match [as 别名]
def test_find_token_invalid_matches(self, token_re, token_cls, is_valid_id, is_valid_timestamp):
"""None should be returned if no matches have valid user IDs or timestamps."""
token_re.finditer.return_value = [mock.create_autospec(Match, spec_set=True, instance=True)]
token_cls.return_value = mock.create_autospec(Token, spec_set=True, instance=True)
is_valid_id.return_value = False
is_valid_timestamp.return_value = False
return_value = TokenRemover.find_token_in_message(self.msg)
self.assertIsNone(return_value)
token_re.finditer.assert_called_once_with(self.msg.content)
示例10: get_name_matches
# 需要导入模块: import re [as 别名]
# 或者: from re import Match [as 别名]
def get_name_matches(name: str) -> List[re.Match]:
"""Check bad words from passed string (name). Return list of matches."""
matches = []
for pattern in WATCHLIST_PATTERNS:
if match := pattern.search(name):
matches.append(match)
示例11: sub_clyde
# 需要导入模块: import re [as 别名]
# 或者: from re import Match [as 别名]
def sub_clyde(username: Optional[str]) -> Optional[str]:
"""
Replace "e"/"E" in any "clyde" in `username` with a Cyrillic "е"/"E" and return the new string.
Discord disallows "clyde" anywhere in the username for webhooks. It will return a 400.
Return None only if `username` is None.
"""
def replace_e(match: re.Match) -> str:
char = "е" if match[2] == "e" else "Е"
return match[1] + char
if username:
return re.sub(r"(clyd)(e)", replace_e, username, flags=re.I)
else:
return username # Empty string or None
示例12: test_num_or_match_should_return_regex_match_when_compare_strings
# 需要导入模块: import re [as 别名]
# 或者: from re import Match [as 别名]
def test_num_or_match_should_return_regex_match_when_compare_strings(self):
import re, sys, _sre
if sys.version_info[1] >= 7:
self.assertIsInstance(self.nom('sa', 'sa'), re.Match)
示例13: CompareExpression
# 需要导入模块: import re [as 别名]
# 或者: from re import Match [as 别名]
def CompareExpression(self, expression):
"""Compares the token against an expression string.
Args:
expression (str): expression string.
Returns:
re.Match: the regular expression match object if the expression string
matches the token or None if no match.
"""
return self._regex.match(expression)
示例14: _truncate_float
# 需要导入模块: import re [as 别名]
# 或者: from re import Match [as 别名]
def _truncate_float(matchobj, ndigits=3):
"""Truncate long floats
Args:
matchobj (re.Match): contains original float
ndigits (int): Number of digits to print
Returns:
str: returns truncated float
"""
if matchobj.group(0):
return '%.{}g'.format(ndigits) % float(matchobj.group(0))
return ''