Python正则表达式匹配字符串的最后一个字
我有以下字符串:Python正则表达式匹配字符串的最后一个字,python,regex,Python,Regex,我有以下字符串: "crypto map OUTSIDEMAP 540 match address 3P-DC-CRYPTO" 而且,我正在尝试仅与正则表达式匹配3P-DC-CRYPTO 到目前为止,我已成功编写了以下正则表达式: crypto_acl = re.findall("address [-\w+]*",output) 但是,它与地址3P-DC-CRYPTO匹配 任何建议?您可以使用(?您可以使用(?您可以通过以下方式捕获所需的单词: >>> crypto_acl
"crypto map OUTSIDEMAP 540 match address 3P-DC-CRYPTO"
而且,我正在尝试仅与正则表达式匹配3P-DC-CRYPTO
到目前为止,我已成功编写了以下正则表达式:
crypto_acl = re.findall("address [-\w+]*",output)
但是,它与地址3P-DC-CRYPTO匹配
任何建议?您可以使用
(?您可以使用(?您可以通过以下方式捕获所需的单词:
>>> crypto_acl = re.findall("address ([-\w+]*)",output)
>>> crypto_acl
['3P-DC-CRYPTO']
另外,由于您在问题中提到需要字符串的最后一个单词,您可以这样做,而无需在address
后面显式查找单词:
>>> crypto_acl = re.findall(r"\b([-\w+]+)$",output)
>>> crypto_acl
['3P-DC-CRYPTO']
#or simply
>>> crypto_acl = output.split()[-1]
>>> crypto_acl
'3P-DC-CRYPTO'
现场演示您可以通过以下方式捕获所需单词:
>>> crypto_acl = re.findall("address ([-\w+]*)",output)
>>> crypto_acl
['3P-DC-CRYPTO']
另外,由于您在问题中提到需要字符串的最后一个单词,您可以这样做,而无需在address
后面显式查找单词:
>>> crypto_acl = re.findall(r"\b([-\w+]+)$",output)
>>> crypto_acl
['3P-DC-CRYPTO']
#or simply
>>> crypto_acl = output.split()[-1]
>>> crypto_acl
'3P-DC-CRYPTO'
现场演示实际上不需要正则表达式:
string = "crypto map OUTSIDEMAP 540 match address 3P-DC-CRYPTO"
# check for address as well
words = string.split()
if words[-2] == 'address':
last_word = words[-1]
print(last_word)
这将检查地址,然后捕获最后一个单词。实际上不需要正则表达式:
string = "crypto map OUTSIDEMAP 540 match address 3P-DC-CRYPTO"
# check for address as well
words = string.split()
if words[-2] == 'address':
last_word = words[-1]
print(last_word)
这将检查地址,然后捕获最后一个单词。尝试使用正则表达式搜索
import re
str = "crypto map OUTSIDEMAP 540 match address 3P-DC-CRYPTO"
result = re.search(r'(address .*)', str)
result.group() # return as 'address 3P-DC-CRYPTO'
result = re.search(r'address (.*)', str)
result.group() # return as 'address 3P-DC-CRYPTO'
result.group(0) # return as 'address 3P-DC-CRYPTO'
result.group(1) # return as '3P-DC-CRYPTO'
尝试使用正则表达式搜索
import re
str = "crypto map OUTSIDEMAP 540 match address 3P-DC-CRYPTO"
result = re.search(r'(address .*)', str)
result.group() # return as 'address 3P-DC-CRYPTO'
result = re.search(r'address (.*)', str)
result.group() # return as 'address 3P-DC-CRYPTO'
result.group(0) # return as 'address 3P-DC-CRYPTO'
result.group(1) # return as '3P-DC-CRYPTO'
您可以使用正向查找并捕获组()
重新导入
pattern=r“(?您可以使用正向查找并捕获组()
重新导入
pattern=r“(?如果要匹配最后一个单词,不必使用regex:output.split()[-1]
即可。如果要匹配最后一个单词,不必使用regex:output.split()[-1]
可以。因为我有多行要检查,所以您的选项对我来说是正确的。谢谢因为我有多行要检查,所以您的选项对我来说是正确的。谢谢