定义要匹配的模式。在这里,我们匹配的是^Flow Control 的“右边的任何东西”((?P<suffix>.+)$)李>
pattern = re.compile(r"^Flow Control (?P<suffix>.+)$")
获取给定字符串的匹配项(例如"Flow Control None")
suffix = pattern.search("Flow Control None").group("suffix")
print(suffix) # Out: None
希望这个完整的工作示例也能帮助您
import re
def get_suffix(text: str):
pattern = re.compile(r"^Flow Control (?P<suffix>.+)$")
matches = pattern.search(text)
return matches.group("suffix") if matches else None
examples = [
"Flow Control None",
"Flow Control None None",
"Flow Control None",
"Flow Control ",
]
for example in examples:
suffix = get_suffix(text=example)
if suffix:
print(f"Matched: {repr(suffix)}")
else:
print(f"No matches for: {repr(example)}")
像这样使用
split
:或使用
re.findall
:因为您已经用
#python
和#regex
标记了您的问题,所以我将使用这些工具概述您的问题的简单解决方案。此外,另外两个答案并没有真正解决匹配"Flow Control "
前缀的“右边的任何东西”的确切问题re
内置模块(read the docs)开始李>^Flow Control
的“右边的任何东西”((?P<suffix>.+)$
)李>"Flow Control None"
)希望这个完整的工作示例也能帮助您
如果您真的想要纯正则表达式解决方案,请尝试以下方法:
(?<= )[a-zA-Z]*$
(?<= )
与单个“”匹配,但未将其包括在匹配中[a-zA-Z]*
多次匹配从a到z或a到z的任何内容$
匹配行的结尾如果要确保匹配项至少有一个字母,也可以尝试将
*
替换为+
(如果字符串以空格结尾,+
将不匹配,则*
将生成0长度匹配)但这样做可能更清楚
EDIT
data.split(' ')[-1]
还返回"None"
或
这根本不涉及正则表达式
相关问题 更多 >
编程相关推荐