Java Jackson YAML:使用标志映射正则表达式模式
在Jackson中,YAML中的字符串:Java Jackson YAML:使用标志映射正则表达式模式,java,regex,jackson,yaml,Java,Regex,Jackson,Yaml,在Jackson中,YAML中的字符串: regexField: "(\\d{2}):(\\d{2})" 到类上的模式字段: final class MappedFromYaml { private Pattern regexField; // ... accessors } Jackson的ObjectMapper将创建带有默认标志的模式。是否可以使用设置的特定标志创建它,例如Pattern.MULTILINE?理想情况下,我希望能够在YAML中指定这些标志,但如果不能做到
regexField: "(\\d{2}):(\\d{2})"
到类上的模式
字段:
final class MappedFromYaml {
private Pattern regexField;
// ... accessors
}
Jackson的
ObjectMapper
将创建带有默认标志的模式。是否可以使用设置的特定标志创建它,例如Pattern.MULTILINE
?理想情况下,我希望能够在YAML中指定这些标志,但如果不能做到这一点,也希望能够在Java代码中为特定字段指定标志。第一种是直接嵌入标志:
否则,不要直接映射到模式
,而是引入一个自定义类型,如模式生成器
public class PatternBuilder {
public String regex;
public boolean multiline;
public Pattern pattern() {
int flags = 0;
if (multiline) flags |= Pattern.MULTILINE;
return Pattern.compile(regex, flags);
}
}
可以从YAML中构建
pattern:
regex: "(\\d{2}):(\\d{2})"
multiline: true
谢谢,正则表达式中的旗帜正是我想要的!
pattern:
regex: "(\\d{2}):(\\d{2})"
multiline: true