用正则替换怎么匹配有多重嵌套的字串?

ssq119 2019-07-30 05:35:08
正则替换对我等业余选手太难搞了。下面是我在VB6中用于正则替换的部分代码。

Public Sub ZZ_Replace()

Const ForReading = 1
Const ForWriting = 2
Dim strTxt As String '用于查找替换的文本
Dim expTxt As String '查找串(可用正则表达式)
Dim repTxt As String '替换串
Dim s1 As String '跳出循环比较串
Dim s2 As String '跳出循环比较串
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\temp.txt", ForReading)
strTxt = objFile.ReadAll
objFile.Close

strTxt = StrReplace(strTxt, "\\d\\ba\d+\\li\(([^)]*)\)([^\r\n]{1})", "[KG-3]$1$2[CD#1]")

Set objFile = objFSO.OpenTextFile("c:\temp.txt", ForWriting)
objFile.WriteLine strTxt
objFile.Close
Set objFSO = Nothing
Set objFile = Nothing
End Sub

我现在要匹配像下面有多重空心括号〖*〗嵌套的字串(实际嵌套可能比下例更复杂或简单):
↑〖A〖BC↑〖2〗+EFG↓〖35〗〗〗……,后面也有〖*〗
应怎样将↑后面的最外一层〖*〗匹配后再实行替换?如果用贪婪模式,那此字符串后面可能还有很多〗
...全文
294 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
data-v-165b75c4 2019-11-07
  • 打赏
  • 举报
回复
正则不利于维护,效率也低。写代码吧,虽然看起来没有正则那么简短。
  • 打赏
  • 举报
回复
就是要使用平衡组,其实平衡组最好写,写法就是固定的写法
吹风的兔子 2019-08-13
  • 打赏
  • 举报
回复
匹配有多重嵌套的字串 —— 莫非要使用 传说中的 正则平衡组 ?? 【很抱歉,正则的 “平衡组”我不会 】
诺维斯基 2019-08-13
  • 打赏
  • 举报
回复
正则在线测试地址:http://www.regexp.cn
w12wangbo 2019-08-12
  • 打赏
  • 举报
回复
对正则不太熟练但是有些正则表达式看起来很简单,但是执行效率太低,不如用函数replace
内容概要:本文提出一种基于鱼鹰优化算法(OOA)优化的CNN-BiGUR-Attention混合模型,用于提升短期风电功率预测的精度与稳定性,采用Matlab实现代码仿真。该模型融合卷积神经网络(CNN)提取输入数据的局部空间特征,利用双向门控循环单元(BiGUR)捕捉风速、功率等时间序列的前后向动态依赖关系,并引入注意力机制自适应强化关键时间步的特征权重,从而增强模型对非平稳风电数据的表征能力;进一步,采用OOA算法对模型超参数进行全局寻优,有效提升模型收敛速度与泛化性能。研究基于实际风电场历史数据开展实验验证,结果表明,该方法相较传统模型在预测精度、鲁棒性和误差抑制方面表现更优,适用于高比例可再生能源接入背景下的电力系统调度需求。; 适合人群:从事新能源发电预测、电力系统优化调度、智能算法与深度学习融合应用等方向的科研人员及工程技术人员,尤其适合具备Matlab编程能力、熟悉时间序列建模与深度学习框架的研究者。; 使用场景及目标:①实现风电场短期功率高精度预测,支撑电网安全稳定调度与能量管理;②为深度学习模型结构设计与智能优化算法联合调参提供实践范例;③推动人工智能技术在可再生能源预测、智能电网运行等领域的落地应用。; 阅读建议:建议结合提供的Matlab代码深入理解CNN-BiGUR-Attention网络架构搭建、注意力机制实现方式及OOA优化流程,重点关注数据预处理、模型训练与参数调优细节,可通过替换不同风电数据集进行对比实验,进一步掌握模型迁移能力与适应性。

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧