2012-02-29 30 views
0

我正在檢查可執行文件的有效用戶輸入;但它確實包括諸如del/rm,dir/ls。輸入通過XML收集,並使用XSD進行驗證。我不會檢查文件是否存在,因爲我的程序提交給服務器,可能訪問相同的文件,也可能不訪問相同的文件。正則表達式不 r n並且不完全空間

那麼唯一的要求是它沒有新的線\r\n它不能完全是空白的。我認爲假設選項\t也是不允許的,但我更關心換行符。

感謝

回答

1

這是否意味着你已經在這裏提到的侷限性: http://www.regular-expressions.info/xml.html

如果是這樣,那麼你可能想是這樣的: [^\r\n\t]*[^\r\n\t\s][^\r\n\t]*

中間部分表示必須有一個字符不是換行符,製表符或空格。其餘部分意味着該字符周圍的零個或多個字符不是換行符或製表符(但可以是空格)。我想你可能會從中間組中刪除\r\n\t,因爲它們全都可能包含在\s中,但我沒有測試過這些。

如果需要製表符,請刪除三次出現的\t

+0

是的,我也有同樣的限制。 – SimplyKnownAsG 2012-03-01 01:53:27

1

我不完全知道你想要做什麼,但「不換行,而不僅僅是空白」一正則表達式將

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

此匹配零個或多個空白字符後跟由非空白字符和不是\ r或\ n(包括空格和製表符)的任意數量的字符組成。它不能匹配只包含空格的字符串(因爲不會有與\ S匹配的非空白字符)。

要還禁止標籤,你可以改變這種閱讀

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