我目前正在尝试编写一个RegexReplace来确保输入可以用作有效的XML标记,这意味着:没有空格,没有特殊字符,只有小写等等...
是否有一个共同的方法或我必须从头开始做?
例:
string Invalid = "asd(%4 asKUd n!%mn &§a_As1"; // Invalid as a tag
string Valid = FormatToSafeXmlTag(Invalid); // How to write this function?
// Valid = "asd4_askud_nmna_as1"
Run Code Online (Sandbox Code Playgroud)
根据XML规范,元素的名称以下列方式形成:
Name ::= NameStartChar (NameChar)*
Run Code Online (Sandbox Code Playgroud)
哪里
NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6]
| [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D]
| [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF]
| [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7
| [#x0300-#x036F] | [#x203F-#x2040]
Run Code Online (Sandbox Code Playgroud)
转换为正则表达式是微不足道的.
如果您要删除此定义之外的任何字符,只需反转表达式要查找的字符.
| 归档时间: |
|
| 查看次数: |
1896 次 |
| 最近记录: |