萝卜L

导航

统计

条件正则过滤筛选 V2

迭代提炼抽象自条件正则过滤筛选 V1

概要:

  • 基础语法实现的PRCE单语句正则查找,捕获可选模式的左右部分。

功能:

  • 依据模式S,条件性(不)执行——查找(可选的)首个目标模式T,捕获其左侧$1、右侧$2文本。

实现:

  • 使用PCRE正则的基础语法(未使用实验性、高版本功能,兼容性高):
    • Lazy Quantifier惰性求值;
    • Positive Lookahead前向匹配断言;
    • (?:T|$) 推进对可选目标模式的全文检测,避免回溯(Backtracking)。

参考:

复制代码
 1 (?#skip match process when S exist, or remove optional left most target T, capture left and right part of T.
 2 Use case: if N is not exist, modify/change T to N, or create N. If any create or modify write operated, appending output N to right.
 3 skip exist:)^(?!.*S)(?#
 4 captrue prefix :)^(.*?)(?#
 5 optional target to remove:)(?:T|$)(?#
 6 captrue postfix:)(.*?)$(?#
 7 Test string:
 8 aa
 9 aaT
10 Tcc
11 aaTcc
12 aaTbbTcc
13 aaS
14 aaTS
15 TccS
16 aaTccS
17 Saa
18 SaaT
19 STcc
20 SaaTcc
21 Substitution: $1$2N
22 Return:
23 aaN
24 aaN
25 ccN
26 aaccN
27 aabbTccN
28 aaS
29 aaTS
30 TccS
31 aaTccS
32 Saa
33 SaaT
34 STcc
35 SaaTcc)
View Code
复制代码

 维护最新版本见create or change one optional part to another (58bd3z/1)

 

posted on   萝卜L  阅读(227)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示