You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript正则匹配ObjectScript中Include行的指定单词

解决ObjectScript Include行单词匹配的正则问题

问题分析

你之前的正则表达式(?<=^Include \(?)([%A-Za-z0-9.]+)|((?<=, )[%A-Za-z0-9.]+)存在的问题是:第二个分支(?<=, )[%A-Za-z0-9.]+没有限定匹配范围为以Include开头的行,导致会误匹配其他行(比如Class行)中逗号空格后的符合规则的单词。

修正后的正则表达式

适用于JavaScript环境的正确正则如下:

/(?<=^Include(?:\s*\(| |.*?, ))[%A-Za-z0-9.]+/gm

正则说明

  • gm标志:g表示全局匹配所有符合条件的结果,m表示多行模式,让^可以匹配每一行的开头。
  • 正向预查部分:(?<=^Include(?:\s*\(| |.*?, ))确保匹配的单词必须处于以Include开头的行内,覆盖三种场景:
    • ^Include\s*\(:行首为Include后接零个或多个空格加左括号(对应Include (...)格式)
    • ^Include :行首为Include后接单个空格(对应Include %sySystem格式)
    • ^Include.*?, :行首为Include后接任意内容(非贪婪匹配)加逗号空格(对应行内逗号分隔的后续单词)
  • 匹配目标:[%A-Za-z0-9.]+匹配包含%、字母、数字、点号的合法ObjectScript包含项名称。

测试效果

针对你的示例代码:

Include %sySystem
Include (%sySystem, %soap, %Net.WebSocket)

Class HS.Local.zimpl.fhirpro.UI.FileViewer Extends (HS.Local.zimpl.fhirpro.UI.Super, %CSP.Page)

匹配结果为:%sySystem、%sySystem、%soap、%Net.WebSocket,不会误匹配%CSP.Page。

内容的提问来源于stack exchange,提问作者Brandon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 05:37:44