正则表达式 - 不包含某些字符

Regex - Does not contain certain Characters

提问人:SetiSeeker 提问时间:11/5/2010 最后编辑:InSyncSetiSeeker 更新时间:5/4/2023 访问量:685172

问:

我需要一个正则表达式来匹配,如果句子中的任何地方都没有 EITHER 或 .<>

如果字符串中是 或,则它必须返回 false。<>

我在这方面取得了部分成功,但前提是我在开头或结尾:<>

(?!<|>).*$

如果这有所作为,我正在使用 .Net。

感谢您的帮助。

正则表达式否定

评论


答:

96赞 Alin Purcaru 11/5/2010 #1

给你:

^[^<>]*$

这将测试没有和没有的字符串<>

如果要测试可能具有 和 的字符串,但还必须具有其他内容,则应使用<>

[^<>] (or ^.*[^<>].*$)

其中<>中的任何一个,并指任何不属于<>的。[<>][^<>]

当然还有强制性链接

664赞 Ned Batchelder 11/5/2010 #2
^[^<>]+$

字符类 () 中的插入符号表示匹配任何内容,但,这意味着字符串的开头,然后是除 和 之外的任何内容的一个或多个,然后是字符串的末尾。[^<>

评论

5赞 RobKohr 1/4/2015
第一个插入符号是什么意思?这是否意味着任何不包含这些字符的东西......因此,仅意味着包含这些字符的字符串?
24赞 Ned Batchelder 1/4/2015
第一个插入符号表示字符串的开头。美元表示,字符串的末尾。
2赞 Ned Batchelder 9/12/2017
@PhilipRego 小心特殊字符:shell 会解释其中的一些字符。查看您的目录中现在是否有名为“]+$”的文件。将整个正则表达式放在单引号内以使其正常工作。
1赞 Dr_Zaszuś 1/29/2020
很好的答案!您能否解释为什么有一个和第一个插入符号?+
1赞 Ned Batchelder 1/31/2020
@Dr_Zaszuś “+”表示“一个或多个”,“^”表示“字符串的开头”。