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