Question: I want to write a `regex` for extracting numbers from the following text (that is part of a bigger text):

```
 switchport trunk allowed vlan 206,220,23,234,250,262,21,283,2086,296,305,323
 switchport trunk allowed vlan add 334,340,342,365,380,404,41,414,42,421,434
 switchport trunk allowed vlan add 461,472,499,509,29,535,544,551,552,55,595
 switchport trunk allowed vlan add 642,672,690,697,701,704,711,800,2018,2020
 switchport trunk allowed vlan add 2054
 switchport mode trunk

```

I want to extract all the vlan numbers between **switchport trunk allowed vlan** and **switchport mode trunk**

I think that the pattern should be like:

```
switchport trunk allowed vlan (\S*) ((\d+),*)+(?:.|\n)

```

but don't know how to extract the other numbers (only the first one matched)

I use the pattern in `PHP` in `preg_match` function.

Answer: 
I found two solutions for Spring Boot application:

***1. [Swagger 2](https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api) based:***

Firstly, use the `tags` method for specify the tags definitions in your `Docket` bean:

```java
@Configuration
@EnableSwagger2
public class Swagger2Config {

    public static final String TAG_1 = "tag1";

    @Bean
    public Docket productApi() {
        return new Docket(DocumentationType.SWAGGER_2).select()
                .apis(RequestHandlerSelectors.basePackage("my.package")).build()
                .tags(new Tag(TAG_1, "Tag 1 description."))
                // Other tags here...
                .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("My API").version("1.0.0").build();
    }
}

```

After, in `RestController` just add the `@Api` annotation with one (or more) of the your tags:

```java
@Api(tags = { SwaggerConfig.TAG_1 })
@RestController
@RequestMapping("tag1-domain")
public class Tag1RestController { ... }

```

***2. [Swagger 3](https://www.baeldung.com/spring-rest-openapi-documentation) based (OpenAPI):***

Similarly, use the `addTagsItem` method for specify the tags definitions in your `OpenAPI` bean:

```java
@Configuration
public class OpenApiConfig {

    public static final String TAG_1 = "tag1";

    @Bean
    public OpenAPI customOpenAPI() {
        final Info info = new Info()
                .title("My API")
                .description("My API description.")
                .version("1.0.0");

        return new OpenAPI().components(new Components())
                .addTagsItem(createTag(TAG_1, "Tag 1 description."))
                // Other tags here...
                .info(info);
    }

    private Tag createTag(String name, String description) {
        final Tag tag = new Tag();
        tag.setName(name);
        tag.setDescription(description);
        return tag;
    }

}

```

Finally, in `RestController` just add the `@Tag` annotation:

```java
@Tag(name = OpenApiConfig.TAG_1)
@RestController
@RequestMapping("tag1-domain")
public class Tag1RestController { ... }

```
An old question but may help using swagger 3

```
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    // Swagger configuration
    @Bean
    public Docket api() {

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo( this.apiInfo())
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("API Reference").version("1.0.0")
                .description("something")
                .license("Apache 2.0")
                .build();
    }

    public void addResouceHandler(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

```