首页 > 解决方案 > 胶水代码中的正则表达式跳过跳过'en'字

问题描述

我有一个 Cucumber 的胶水代码,当字符串 'publiceren' = ' Intern en Extern' 时没有解析正确的字符串:

@En('^de vacature betreft een (.*) voor (.*) en heeft de volgende gegevens: (.*), (.*), (.*), (.*), (.*) en (.*?)$')
    def de_vacature_betreft_een_vacaturetype_voor_medewerker(String vacaturetype, String medewerker, String recruiter, String uren, String werkervaring, String opleiding, String achtergrond, String publiceren) {

        println(publiceren) 
    }

我得到的结果只是'Extern',问题似乎是字符串的'en'部分。我该如何解决这个问题?此外,这种方法是否对所有 (.*) 都是正确的?

标签: regexgroovycucumberkatalon-studio

解决方案


默认情况下,正则表达式是贪婪的,因此捕获组achtergrond将包含...'publiceren' = ' Intern. 您要么必须"在步骤参数周围添加分隔符(即)并将其从捕获中排除,"([^"]*)"要么使倒数第二个捕获组不贪婪,即(.*?)


推荐阅读