Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jackson YAML:使用标志映射正则表达式模式_Java_Regex_Jackson_Yaml - Fatal编程技术网

Java 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中指定这些标志,但如果不能做到

在Jackson中,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