PCRE 中是否有“否定交替”或“否定字符串类”、“否定字符类”之类的东西?

2024-03-30

好吧,虽然模式[abc]匹配单个字符a, b, or c, 模式[^abc]匹配任何给定的字符isn't a, b, or c.

现在如果我替换string for 特点在上面的声明中,如果我也将第一个模式更改为交替结构,那么它仍然适用(abc|def|ghi)。 -- 它将匹配三个字符的连续字符串等于abc, def, or ghi。我该怎么做才能匹配任意三个字符的字符串isn't等于abc, def, or ghi?


这是正则表达式的一个常见问题,简短的回答是“否”,正则表达式的操作方式没有提供“除...之外的任何 3 字母字符串”的表达方式。

However,一些正则表达式引擎允许所谓的“否定前瞻断言”。这些有点难以理解 -这个lookaround的解释 http://www.regular-expressions.info/lookaround.html似乎很好地涵盖了它,虽然技术上有点。

前瞻的重要一点是它是“零宽度”的——它不会“用完”任何字符串。所以在 Javascript 中你可以匹配这样的字符串:'abc123ghi'.match(/abc(?!def)...ghi/) - the (?!def)说不能有这些字母'def'之后'abc',但是...需要在那里说应该有其他 3 个字符。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PCRE 中是否有“否定交替”或“否定字符串类”、“否定字符类”之类的东西? 的相关文章

随机推荐

  • TextView 作为带有文本颜色操作的进度条?

    我正在努力改进我的应用程序的用户界面 在我使用的设计中 我有一个 TextView 它将在特定时间充当进度条 ruslt 应该看起来像这样 问题是 随着进度的变化 部分文本的颜色也会改变 我研究了android中的spannablestri
  • ASP.NET Web API 中是否有等效的@JsonView

    我在 Spring 和 Java 方面有更多的经验 但现在我正在从事 ASP NET Web API 项目 因此 在 Spring 中 我可以使用 JsonView 注释来注释我的 DTO 这样我就可以选择通过 REST 显示哪些数据 我发
  • 如何在 web.config 文件中存储字典对象?

    我想在我的网络配置文件中存储一个简单的键 值字符串字典 Visual Studio 可以轻松存储字符串集合 请参阅下面的示例 但我不确定如何使用字典集合来存储字符串集合
  • Cocoa-Touch:如何查看两个 NSDate 是否在同一天?

    我需要知道两个 NSDate 实例是否都来自同一天 有没有比获取 NSDateComponents 并比较日 月 年更简单 更好的方法 如果您的目标是iOS 8 和 OS X 10 9 或更高版本 then 乔的回答 https stack
  • libQt5XcbQpa.so.5:未定义的符号:FT_Property_Set

    当我尝试从 python 脚本运行 wkhtmltopdf 命令时出现此错误 usr bin wkhtmltopdf symbol lookup error usr lib x86 64 linux gnu libQt5XcbQpa so
  • 嵌套视图中的拥抱和压缩阻力

    我试图了解拥抱和抗压阻力是如何真正发挥作用的 我有这样的场景 我需要左侧两个标签 绿色容器内 和右侧两个标签 蓝色容器内 如图所示 我希望绿色容器能够容纳内容 Android 的wrap content 和蓝色容器来填充剩余空间 Andro
  • PostgreSQL 中的跨数据库查询[重复]

    这个问题在这里已经有答案了 我正在尝试在 Postgres 中构建查询 我的背景是 SQL Server 因此我遇到了一些语法挑战 我的查询需要访问两个独立服务器上的两个独立数据库 我需要在数据集之间进行连接 本质上 我在 db1 中有一个
  • pySerial 与 python 2.7 和 3.4 的差异

    我正在开发一个项目 需要通过串口将一些数字从 Windows 10 中的 python 发送到 arduino uno 作为一个简单的测试 我只想通过发送 2 来打开 LED 并通过从命令提示符发送 4 来关闭 LED 尽管我希望最终能够将
  • ScrollView 只能承载一个直接子异常

    我想将图像添加到滚动视图 我尝试使用以下代码 ScrollView sv ScrollView findViewById R id scrollView2 ImageView iv new ImageView this iv setImag
  • Android Studio - Flutter 插件未安装;这增加了 Flutter 特定的功能

    考虑到我已经遵循了所有这些步骤https flutter dev docs get started install linux https flutter dev docs get started install linux在我的 Ubun
  • 使用空格键启动和停止 Python 海龟

    我正在尝试编写一个程序 通过按空格键来启动和停止乌龟 我得到了启动乌龟移动的代码 但当我再次按下它时它并没有停止 看来只是提高速度而已 这是我的编码要求和我输入的代码 创建一个包含三个函数的乌龟程序来控制乌龟 创建一个名为 turnLeft
  • Twitter Bootstrap Carousel 的表达式引擎频道条目无法正常工作

    好的 我在通过 ExpressionEngine 的频道条目实现基本的 Twitter 引导轮播时遇到问题 我认为这与以下事实有关 您必须将第一个 li 标记指定为 活动 以便引导程序知道页面加载时显示哪个图像 但我的代码如下 div cl
  • Java的for循环有没有针对线程安全的优化?

    我有一段代码可以更改两个线程中的计数器 它不是线程安全的 因为我没有在代码中放置任何原子变量或锁 如果代码只运行一次 它会给出正确的结果 但我想运行它多次 所以我将代码放入 for 循环中 问题是只有第一个或前两个循环才会生成我期望的结果
  • Play 2.0 - 服务器重新启动后作为 Windows 服务启动

    我有游戏 作为 Windows 服务运行的应用程序 它是根据this http naoki sato name lab archives 263指导 问题是RUNNING PID当服务器重新启动时 应用程序根文件夹中的内容不会被删除 并且应
  • 为什么Java的hashCode不支持通用哈希?

    一些哈希表方案 例如布谷鸟哈希 http en wikipedia org wiki Cuckoo hashing or 动态完美哈希 http en wikipedia org wiki Dynamic perfect hashing 依
  • Scala 未绑定占位符参数

    我使用以下代码来满足我的需求 1 to 5 map i gt s x i Produces List x1 x2 x3 x4 x5 但我想使用占位符 根据字符串插值器文档 http docs scala lang org overviews
  • 如何将 IntPtr 转换为 int

    有时是窗把手int以及其他时间类型IntPtr int例子 DllImport user32 dll static extern uint GetWindowThreadProcessId int hWnd int ProcessId In
  • Eclipse 法语支持

    我需要在 eclipse 中输入一些法语字符 如何配置 eclipse 输入法语 我确实拥有默认 Eclipse 包装附带的所有字体 首选项 常规 工作区 文本文件编码 在我的配置中 我看到 Cp1252 可能是在我的操作系统当前设置之后设
  • 如何在 Docker 容器内运行 OpenCL + OpenGL?

    目的是在 Docker 容器内运行 OpenCL OpenGL 互操作 应用程序 但我还没有成功 Intro 我有配备 NVidia 显卡的笔记本电脑 因此我认为利用 NVidia Dockerfiles 1 2 将是一个很好的起点 以下
  • PCRE 中是否有“否定交替”或“否定字符串类”、“否定字符类”之类的东西?

    好吧 虽然模式 abc 匹配单个字符a b or c 模式 abc 匹配任何给定的字符isn t a b or c 现在如果我替换string for 特点在上面的声明中 如果我也将第一个模式更改为交替结构 那么它仍然适用 abc def