Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在我的 Web 应用程序中,我希望用户只输入 SELECT 语句。我正在使用以下正则表达式来验证条目。
(^(?i)select.+)(\\w|\\W)
上面的代码确保条目应该以 SELECT 开头,然后是 WHITESPACE(示例:SELECT * FROM TABLE1)但是当用户在创建查询时使用“ENTER”键时,正则表达式会失败。所以我想要 REGEX 到所有 'ENTER' 键。谁能告诉我 REGEX 的语法以允许用户在文本区域中使用“ENTER”键吗?
小题外话:你的代码没有做任何事情来确保后面的空格,SELECT因为点匹配除换行符以外的任何字符。
SELECT
但是现在,要回答您的问题:您需要(?s)标志以允许点也匹配换行符。另外,您应该使用\s令牌来断言空格的存在。尾随(\w|\W)相当神秘 - 它也匹配任何字符......
(?s)
\s
(\w|\W)
所以我建议这样做:
"^(?is)select\\s.*"
甚至
"^(?i)select\\s"
因为这已经足以检查字符串是否以SELECT<space>.
SELECT<space>