使用正则表达式的平面文件模式验证 - 不允许换行和分隔符字符
Flat file schema validation using regular expression - not allow new line and delimiter char
我知道这一定是个原始问题,但我仍然无法找到解决我的简单问题的方法。
在 BizTalk 解决方案中,我想根据平面文件架构验证入站平面文件(分隔符字符是竖线“|”)。规则是每条记录(每一行)中的字段数必须完全相同。所以反汇编后,字段的none必须有换行字符(CR LF或\r\n)和管道'|'字符
平面文件中的每一行都是一条记录,每条记录中有 10 个字段。所以必须有我确切的 9 '|'每行中的管道字符。
我尝试使用 XSD 正则表达式验证来解决它,但由于正则表达式不是我的专业领域,我无法创建最终的正则表达式。目前我正在测试 .*(?!([^\r\n\|])).* 但当有超过 9 个 '|' 时它不起作用字符,但是当少于 9 个时它会起作用。
最后我想要一个 XSD 正则表达式,它不能允许换行字符和 '|'在字符串中,但可以有空的 '' 值。
我参考了下面的链接来创建我的正则表达式,
我认为你试图解决错误的问题。
首先,你真的需要这样做吗?我不记得曾经需要甚至考虑过你所描述的内容。
其次,您可以只验证已解析的 Xml。如果字段计数错误,它将在那里失败。如果您确实需要检查额外的“|”,您可以将其放入架构中以在地图中对其进行测试。
IBM Integration Bus 通过允许您使用 XSD 描述非 XML 数据格式解决了这个问题。该技术称为数据格式描述语言 (DFDL)。
https://en.wikipedia.org/wiki/Data_Format_Description_Language
我知道这一定是个原始问题,但我仍然无法找到解决我的简单问题的方法。
在 BizTalk 解决方案中,我想根据平面文件架构验证入站平面文件(分隔符字符是竖线“|”)。规则是每条记录(每一行)中的字段数必须完全相同。所以反汇编后,字段的none必须有换行字符(CR LF或\r\n)和管道'|'字符
平面文件中的每一行都是一条记录,每条记录中有 10 个字段。所以必须有我确切的 9 '|'每行中的管道字符。
我尝试使用 XSD 正则表达式验证来解决它,但由于正则表达式不是我的专业领域,我无法创建最终的正则表达式。目前我正在测试 .*(?!([^\r\n\|])).* 但当有超过 9 个 '|' 时它不起作用字符,但是当少于 9 个时它会起作用。
最后我想要一个 XSD 正则表达式,它不能允许换行字符和 '|'在字符串中,但可以有空的 '' 值。
我参考了下面的链接来创建我的正则表达式,
我认为你试图解决错误的问题。
首先,你真的需要这样做吗?我不记得曾经需要甚至考虑过你所描述的内容。
其次,您可以只验证已解析的 Xml。如果字段计数错误,它将在那里失败。如果您确实需要检查额外的“|”,您可以将其放入架构中以在地图中对其进行测试。
IBM Integration Bus 通过允许您使用 XSD 描述非 XML 数据格式解决了这个问题。该技术称为数据格式描述语言 (DFDL)。 https://en.wikipedia.org/wiki/Data_Format_Description_Language