![](/img/trans.png)
[英]Is accepting special characters for a range within a regex pattern possible?
[英]Yang pattern not accepting regex containing ^ and $
当 Yang 模式包含插入符号 ^ 或美元 $ 时,它不接受有效的正则表达式。
波纹管模式在正则表达式验证器上有效,但是当在 is-types.yang 文件中的杨模式模板内运行时,我的应用程序错误。
但是,当我从表达式的每个部分中删除 ^ 和 $ 时,它可以正常工作。 但是,这现在允许正则表达式接受不需要的值。
我正在尝试匹配 1、11、1/1/1、1/1/1/1。
尝试模式:
^([0-9]{1,3}/[0-9]{1,3}/[0-9]{1,3})$|^([0-9]{1,3}/[0-9]{1,3}/[0-9]{1,3}/[0-9]{1,3})$|^([0-9]{1,2})$
杨类型定义:
typedef interface_number_value {
type string {
pattern "([0-9]{1,3}/[0-9]{1,3}/[0-9]{1,3})|([0-9]{1,3}/[0-9]{1,3}/[0-9]{1,3}/[0-9]{1,3})|([0-9]{1,2})" {
error-message "error";
}
}
description
"description";
}
我也不确定在哪里向杨提出问题/错误。
这就是 RFC7950 关于“模式”声明的内容:
“pattern”语句是“type”语句的可选子语句,将正则表达式字符串作为参数,如 [XSD-TYPES] 中定义的那样。 它用于将内置类型“string”或从“string”派生的类型限制为与模式匹配的值。
如果您遵循规范性参考XSD-TYPES
,您最终会得到:
[XSD-TYPES] Biron, P. 和 A. Malhotra,“XML 模式第 2 部分:数据类型第二版”,全球范围 Web 联盟建议 REC-xmlschema-2-20041028,2004 年 10 月, Z80791B3AE7002CB88C24://www876D9FAA8F8。 /TR/2004/REC-xmlschema-2-20041028 。
因此,YANG“模式”语句中的正则表达式由 XML Schema (XSD) 类型规范(以及针对 YANG 1.0 和 1.1 的特定修订版)定义。
与其他一些正则表达式不同,YANG“模式”开头的^
字符或 YANG“模式”结尾的$
不会被解释为锚点。 相反,它们被逐字解释为必须匹配的字符。 所有“模式”表达式都是隐式锚定的,因此匹配整个值。
您可以在此处找到有关 XML 模式正则表达式的详细信息的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.