我有很多数据需要以不同的格式解析和输出。数据如下所示:
tag="001">utb20181009818<
tag="003">CZ PrNK<
...
现在,我想在“tag=”001“>;”之后和最后一个“<;”之前提取“utb20181009818”
这是我用python编写的代码:
regex_pattern = re.compile(r'''(?=(tag="001(.*?)">)).*?(?<=[<])''')
ID = regex_pattern.match(one_line)
print(ID)
我的变量one\u行已经包含了必要的数据,我只需要提取值,但无论我做什么,它似乎都不匹配。我看了几个小时,但似乎没有发现我做错了什么。你知道吗
问题是lookaheads不会将匹配位置移到右边,因为它们什么都不匹配-它们只是look。你知道吗
很明显,使用建议的匹配组将是最简单的方法,因为您不必费劲地避免匹配您不想要的部分。你知道吗
但是如果你的“001”不是可变长度,我认为你想要的实际上是一个lookback/lookahead(不是lookahead/lookahead):
(?<=tag="001">).*(?=<)
https://regex101.com/r/rMQnna/3/
尝试regex
tag=\"001\">(.*?)<
并捕获第一个组ID.group(1)
Regex
相关问题 更多 >
编程相关推荐