提问人:SetiSeeker 提问时间:11/5/2010 最后编辑:InSyncSetiSeeker 更新时间:5/4/2023 访问量:685172
正则表达式 - 不包含某些字符
Regex - Does not contain certain Characters
问:
我需要一个正则表达式来匹配,如果句子中的任何地方都没有 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ś “+”表示“一个或多个”,“^”表示“字符串的开头”。
评论