我正在使用搜索然后分组来提取字符串的特定部分。然而,我遇到的问题是它只在第一次发现时才发现。这是正确的,因为这就是搜索的工作方式。
我需要找到它出现的每个实例,但是如果我使用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
我只收到第一个网址。
答案 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