正则表达式在搜索中匹配多个匹配项

时间:2016-09-08 00:38:19

标签: python regex

我正在使用搜索然后分组来提取字符串的特定部分。然而,我遇到的问题是它只在第一次发现时才发现。这是正确的,因为这就是搜索的工作方式。

我需要找到它出现的每个实例,但是如果我使用findall它会创建一个不是我想要的数组而且我不能让group()使用它所以需要一个很多额外的步骤。还有另一种方法吗?

这是我的代码:

 for num, line in enumerate(file, 1):
     if check in line:
         print 'href at line', num
         reg = re.compile('href="(.*?)"|href=\'(.*?)\'')
         link = re.search(reg, line)
         link = link.group(1)
         print 'url:', link

我只收到第一个网址。

1 个答案:

答案 0 :(得分:2)

使用re.finditer并循环结果; //Pop-up window Stage window = new Stage(); window.initModality(Modality.NONE); //Exit Panel VBox exitBox = new VBox(); exitBox.setPadding(new Insets(10)); Button exitPaneExit = new Button(); exitPaneExit.setText("Return"); exitPaneExit.setMinSize(75.0, 30.0); exitPaneExit.setOnAction(e -> { window.close(); }); Button exitButton = new Button(); exitButton.setText("Exit"); exitButton.setMinSize(75.0, 30.0); exitButton.setOnAction(e -> { System.exit(0); }); exitBox.getChildren().addAll(exitPaneExit,exitButton); exitBox.setVisible(true); Scene scene = new Scene(exitBox); window.initStyle(StageStyle.UNDECORATED); window.initOwner(primaryStage); window.setScene(scene); mapScene.setOnKeyPressed(e -> { if(e.getCode()==KeyCode.ESCAPE) { window.show(); } }); 一次返回一个匹配对象,而不仅仅是第一次匹配。

finditer