regex - gvim搜索使用正则表达式匹配多个字符

标签 regex search vim

我正在尝试在 gvim 中搜索以下模式:

arrayA[*].entryx

希望它能匹配以下内容:

arrayA[size].entryx  
arrayA[i].entryx
arrayA[index].entryx

但它会打印消息说“未找到模式”,即使文件中存在上述行。

arrayA[.].entryx  

仅匹配 arrayA[i].entryx 即 [] 大括号之间只有一个字符。

如何匹配 [] 大括号之间的多个字符?

最佳答案

这是 PCRE 表达式详细信息

/arrayA\[[^]]*]\.entryx/
         ^^^^^            # 0 or more characters before a ']'
       ^^      ^^         # Escaped '[' & '.'
              ^           # Closing ']' -- does not need to be escaped
 ^^^^^^          ^^^^^^   # Literal parts

如果你想查找arrayA[X].entryx[]中至少有一个字符,
您需要将 \[[^]]* 替换为 \[[^]]\+

ps:请注意我的编辑 - 我已将 \* 更改为 * - 你也无法逃避它。
但是,您需要转义 + :-)


更新您的评论:
虽然我的评论回答了您关于广泛转义 ] 的问题,
有关更多详细信息,请参阅 Perl Character Class详情。
具体来说,括号字符类中的特殊字符部分。
[字符启动字符类 (CCL) 后,需要转义的规则会发生变化。

关于regex - gvim搜索使用正则表达式匹配多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10688592/

相关文章:

javascript - 从字符串中删除货币符号并使用 Javascript 中的单行转换为数字

javascript - 使用markjs统计某个类的正则表达式匹配数

regex - 如何使用 ng-pattern 验证 angularJs 中的电子邮件 ID

jQuery Mobile 中的搜索框在焦点上变空,仅当它为空且失去焦点时才恢复为默认文本?

regex - 双引号括号内的字符串

vim - 如何更改 vim 中用于自动完成的键绑定(bind)?

mapping - Vim <CR> 映射不起作用?

r - 如何为括号内并以逗号分隔的字符添加引号?

使用 React Native 进行搜索和过滤

java - 将线性和二进制搜索应用于数组