0

我正在检查可执行文件的有效用户输入;但是它确实包括del/ rmdir/之类的东西ls。输入通过 XML 收集并使用XSD进行验证。我不会检查文件是否存在,因为我的程序提交到服务器,该服务器可能有权也可能无法访问相同的文件。

那么唯一的要求是它没有新行\r,或者\n它不能完全是空白。我认为假设也\t不允许使用制表符是有效的,但我更关心换行符。

谢谢

4

2 回答 2

1

我不完全确定您想要做什么,但是“没有换行符而不仅仅是空格”的正则表达式将是

[ \t]*\S[^\r\n]*

这匹配零个或多个空白字符,后跟一个非空白字符和任意数量的非 \r 或 \n 字符(包括空格和制表符)。它不能匹配仅由空格组成的字符串(因为不会有非空格字符匹配 \S)。

要也禁止标签,您可以将其更改为阅读

[ ]*\S[^\r\n\t]*
于 2012-02-29T16:34:59.240 回答
1

这是否意味着您有此处提到的限制: http ://www.regular-expressions.info/xml.html

如果是这样,那么您可能想要这样的东西: [^\r\n\t]*[^\r\n\t\s][^\r\n\t]*

中间部分意味着必须有一个字符不是换行符、制表符或空格。其余部分表示该字符周围的零个或多个字符不是换行符或制表符(但它可以是空格)。我认为您可能可以将其\r\n\t从中间组中删除,因为它们都可能包含在其中,\s但我尚未对此进行任何测试。

\t如果需要选项卡,请删除出现的三个。

于 2012-02-29T16:36:10.143 回答