【问题标题】:Regex to match strings not preceded by another string正则表达式匹配前面没有另一个字符串的字符串
【发布时间】:2021-10-22 01:26:33
【问题描述】:

我在 VS Code 中打开了一个大型 xml 文件,我想搜索前面没有“邮政信箱”的单词“street”。

我找到了这个例子:Match regex if not preceeded by certain words

但是 VS Code 说我想出的字符串无效:

~(?<!\bbox\s)\d{2}\s(?:street)\b~xi

【问题讨论】:

  • 您在搜索文件吗?请注意,这是错误的语法,如果您使用 infile 搜索和替换功能,您应该使用 \b(?&lt;!\bPO box\s+)street\b 或类似的东西(在 VSCode 设置中启用不区分大小写的选项)。
  • 我正在搜索我在 VSCode 中打开的特定文件。
  • 如果您需要真正的解决方案,请提供示例文本和预期结果/行为。

标签: regex visual-studio-code contains inverse


【解决方案1】:

也许这个对你有帮助:

(?<!PO box )street

基本上,它会搜索“street”这个词,然后检查“PO box”是否不在它后面(negative lookbehind

Working example.

也在 VSCode 中测试过,看起来可以正常工作。

【讨论】:

  • 当我尝试时:(?&lt;!po box ) street 我在 VS 代码中得到了这个:Invalid regular expression: /(?&lt;!po box ) street/: Invalid group
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多