胶码中的正则表达式跳过跳过“ en”字

时间:2019-12-11 10:56:13

标签: regex groovy cucumber katalon-studio

我有一个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'部分。 我该如何解决?另外,此方法是否对所有(。*)都正确?

3 个答案:

答案 0 :(得分:1)

默认情况下,正则表达式是贪婪的,因此library(data.table) setDT(df)[, Std.Cover := Cover.Mean/sum(Cover.Mean) * 100, .(Year, Month, Site, Treatment)] 的捕获组将包含achtergrond。您要么必须在分步参数周围添加定界符(即...'publiceren' = ' Intern),然后将它们从捕获"中排除,要么将倒数第二个捕获组设为非贪心,即"([^"]*)"

答案 1 :(得分:0)

根据this question.*将接受除新行以外的所有内容,([^\"]*)将接受包括新行在内的所有内容。因此,请尝试使用([^\"]*)

答案 2 :(得分:0)

尝试一下:

@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) 
}