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

Set*_*ker 233 regex regex-negation

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

如果<或>中的任何一个都在字符串中,那么它必须返回false.

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

(?!<|>).*$
Run Code Online (Sandbox Code Playgroud)

如果这有所不同,我正在使用.Net.

谢谢您的帮助.

添加问题:

我想知道,如果文本包含像这样的标签,你如何修改下面的正则表达式只返回false __CODE__

Ned*_*der 381

^[^<>]+$
Run Code Online (Sandbox Code Playgroud)

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

  • 第一个插入符号表示字符串的开头.美元意味着,字符串结束. (6认同)
  • 第一个插入符是什么意思?这是否意味着不包含这些字符的任何东西......因此只意味着包含这些字符的字符串? (3认同)
  • @PhilipRego 注意特殊字符:shell 会解释其中的一些字符。查看您的目录中是否现在有一个名为“]+$”的文件。将整个正则表达式放在单引号内以使其工作。 (2认同)

Ali*_*aru 54

干得好:

^[^<>]*$
Run Code Online (Sandbox Code Playgroud)

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

如果你想测试一个字符串,它可能有<>,但还必须有其他的东西,你应该只使用

[^<>] (or ^.*[^<>].*$)
Run Code Online (Sandbox Code Playgroud)

[<>]任何的<>[^<>]任何不是<>.

当然还有强制性链接.