regex - 正则表达式可变长度后向通配符
问题描述
我有以下形式的字符串
[Identifier][Keyword][Number]Text
其中 identifier 是\w*
, Keyword 是, 或之一Button
, Number 是, text 是文字。我正在尝试匹配不符合此模式的字符串。Link
Text
[0-9]*
Text
我想匹配的例子:
- 我的标识符
- 我的标识符文本
- 我的标识符按钮
- 我的标识符按钮 1
- 按钮
- 按钮1
- 文本
我不想匹配的示例:
- 按钮文本
- MyIdentifierButtonText
- 按钮1文本
- MyIdentifierButton1Text
- 文本文本
- 文本1文本
我想出了这个:
^\w*(?:(?<!Button)|(?<!Link)|(?<!Text))[0-9]*(?<!Text)$
这是正确的,但它与以下内容不匹配:
- 文本
- 我的标识符文本
我知道问题出在第一次向后看,但我不确定如何解决它。我已阅读此内容并没有帮助,但该问题在回溯之前也没有通配符。
解决方案
推荐阅读
- php - 为什么某些使用我的 Office 插件的 Windows 用户会重复运行 PHP 脚本?
- javascript - 如何在 angular-google-charts 中将“工具提示”添加到时间轴图表?
- java - BinarySearch 中的变量声明
- angular - 在 forEach 有条件的内部承诺完成后解决一个承诺
- ansible - 为什么“默认(无)”并不总是产生“无”
- java - 无法解决“Parcelable 遇到写入可序列化对象的 IOException”
- python-3.x - 在 pythons 中同时绘制多列
- java - 通过在 navigationView 中按 id 重新加载 navigationView 内容
- reactjs - Hasura whatsapp 克隆 JWT 样板 - 如何填充“用户”表?
- mysql - 如何编写查询以从同一个表中执行两种不同的选择