一个部分解决方案是获得所有在和Notes (VARCHAR)
中存在不平衡的地方。但是我该如何为此编写查询呢?<
>
例如:
Input: <html>Hello World</html>
Output: Valid HTML
Input: <html><Hello World</html>
Output: Invalid HTML
Input: <html><Hello World></html>
Output: Valid HTML (Marking it Valid is OK for my use case)
But hey isn't that a valid HTML? It could be <name attribute>
有没有更好的方法来检查“无效”HTML,其中“无效”被定义为 HTML 内容<
后跟一些HTML Element
按照规范无效的字符?
最初我以为我可以检查 for<name
后跟一个(Space) 但 HTML 属性的语法为 as
<name attribute
并在最后关闭>
。
如果您只想确认输入字符串由一系列
<...>
元素组成:<
使用您最喜欢的字符串拆分器拆分字符上的字符串>
字符如果每个元素都通过上述测试,则输入字符串有效。
例子
字符串拆分器
我使用的是
SQL#.String_Split4k
来自 Solomon Rutzky 的免费版 SQLCLR SQLsharp 库中的流式表值函数。如果输入字符串可能超过 4000 个字符,则将
SQL#.String_Split
改用(效率较低的)函数(它处理最多 2GB 的字符串)。任何可以使用序列号正确返回空元素的高效 字符串拆分器(T-SQL 或其他)都可以使用。
下面的示例显示了输出
SQL#.String_Split4k
返回的排序。第一个参数是要拆分的字符串。第二个参数是分隔符。第三个参数(SplitOption)设置为 1,这意味着保留空元素。
输出:
表格和测试数据
解决方案
输出