当杨模式包含插入符^或美元$时,它不接受有效的Regex。
下面的模式在Regex验证器上是有效的,但是当在is - The . Yang文件中的Yang模式模板中运行时,我的应用程序错误。
但是,当我从表达式的每个部分取下^和$时,它工作得很好。但是,这现在允许regex接受不需要的值。
我试图匹配1,11,1/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})$
杨建民f:
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";
}
另外,我也不知道在哪里向杨提出问题/错误。
发布于 2021-12-15 07:58:06
关于“模式”声明,RFC7950就是这样说的:
"pattern“语句是"type”语句的可选子语句,它将XSD-type中定义的正则表达式字符串作为参数。它用于将内置类型"string“或从"string”派生的类型限制为与模式匹配的值。
如果您遵循规范参考XSD-TYPES
,您最终将获得以下内容:
XSD-类型Biron,P.和A. Malhotra,“xmlschema第2部分:数据类型第二版”,万维网联合会推荐的Recommendation 2-20041028,2004年10月,http://www.w3.org/TR/2004/REC-xmlschema-2-20041028。
因此,YANG "pattern“语句中的正则表达式由XML (XSD)类型规范(以及对YANG 1.0和1.1的特定修订)定义。
与其他正则表达式不同,阳“模式”开头的^
字符或杨“模式”末尾的$
字符不被解释为锚。相反,它们被字面上解释为必须匹配的字符。所有“模式”表达式都隐式锚定,因此匹配整个值。
您可以更多地了解XML正则表达式这里的细节。
https://stackoverflow.com/questions/70351146
复制相似问题