some text I want to capture. <tag> junk I don't care about</tag> more stuff I want.
有没有一种简单的方法来编写一个捕获一次捕获中第一个和第三个句子的正则表达式?
答案 0 :(得分:1)
您还可以考虑剥离不需要的数据然后捕获。
data = "some text to capture. <tag>junk</tag> other stuff to capture".
data = re.replace('<tag>[^<]*</tag>', data, "")
data_match = re.match('[\w\. ]+', data)
答案 1 :(得分:0)
据我所知。通常这就是为什么正则表达式搜索和替换功能允许您首先引用多个捕获组。
答案 2 :(得分:0)
答案 3 :(得分:0)
群组捕获是连续的,所以你不能。您可以使用下面的正则表达式在一个解析中执行此操作,并加入代码中的行
^(?<line1>.*?)(?:\<\w*\>.*?\</\w*\>)(?<line3>.*?)$
答案 4 :(得分:0)
这是一种非正则表达方式,在</tag>
上拆分,遍历数组项,找到<tag>
,然后拆分<tag>
并获取第一个元素。例如
>>> s="some text I want to capture. <tag> junk I don't care about</tag> more stuff I want. <tag> don't care </tag> i care"
>>> for item in s.split("</tag>"):
... if "<tag>" in item:
... print item.split("<tag>")[0]
... else:
... print item
...
some text I want to capture.
more stuff I want.
i care
使用asp.net的split()
功能也可以这样做。