gpt4 book ai didi

regex - 我可以否定 POSIX 括号表达式吗?

转载 作者:行者123 更新时间:2023-12-01 09:16:39 25 4
gpt4 key购买 nike

我知道我可以用 POSIX 括号表达式搜索与空格匹配的内容 [[:space:]] .我可以使用 POSIX 括号表达式搜索与空格不匹配的内容吗?特别是,它应该匹配的字符包括字母和括号 ( ( )。
[[:graph:]]看起来有点含糊:

[[:graph:]] - Non-blank character (excludes spaces, control characters, and similar)

最佳答案

你在这里混淆了两件事:bracket expression and a POSIX character class .外[...]是一个括号表达式,它可以用 ^ 否定紧随其后的是 [ . POSIX 字符类是 [: + name + :]仅在括号表达式内工作的构造。

因此,就您而言,[[:space:]] pattern 是一个括号表达式,只包含 1 个与空格匹配的 POSIX 字符类:

  • [ - 打开一个括号表达式
  • [:space:] - 用于空格的 POSIX 字符类
  • ] - 括号表达式的右括号。

  • 要否定它,只需添加 ^像往常一样 NFA character classes : [^[:space:]] .

    注意我故意区分术语“括号表达式”、“POSIX 字符类”和“字符类”,因为 POSIX 和常见的 NFA 正则表达式世界遵循不同的术语。

    关于regex - 我可以否定 POSIX 括号表达式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42683219/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com