c# - C# 正则表达式由多个右括号集分割
问题描述
这是来源:
( ( ERDAT > '20210224' ) OR ( ERDAT = '20210224' AND ERFZEIT > '085956' ) OR ( AEDAT > '20210224' ) OR ( AEDAT = '20210224' AND AEZEIT > '231217' ) ) AND ( AUART IN ( 'PM01', 'PM02', 'PM03', 'PM10', 'PM99' ) )
使用这个正则表达式:(?<=\))\s
我明白了:
( ( ERDAT > '20210224' )
OR ( ERDAT = '20210224' AND ERFZEIT > '085956' )
OR ( AEDAT > '20210224' )
OR ( AEDAT = '20210224' AND AEZEIT > '231217' )
)
AND ( AUART IN ( 'PM01', 'PM02', 'PM03', 'PM10', 'PM99' )
)
注意它们自己的行上的单个右括号。我想要的是这样的:
( ( ERDAT > '20210224' )
OR ( ERDAT = '20210224' AND ERFZEIT > '085956' )
OR ( AEDAT > '20210224' )
OR ( AEDAT = '20210224' AND AEZEIT > '231217' ) )
AND ( AUART IN ( 'PM01', 'PM02', 'PM03', 'PM10', 'PM99' ) )
2:还有一个安可: - 如果生成的分割行超过 50 个字符,我想在 50 个字符之前的最后一个逗号 (,) 处分割这些行
解决方案
您可以添加一个否定的前瞻断言来排除后跟另一个右括号的空格被替换:(?<=\))\s(?!\))
推荐阅读
- java - 识别内置功能接口
- ios - Swift5 数据在传递时为 Nil,即使它不是
- perl - 在 FreeBSD 12.0 上安装 lang/perl5.30 时出错
- c# - C#创建多个任务,每个任务的执行比一个不并行的要慢
- python - 我在我的输出中得到的模式在末尾有额外的星号,这不是必需的
- html - 如何使图像覆盖包含元素的底部阴影
- reactjs - 测试孩子的孩子的最佳方法是什么?
- powershell - Powershell V5 SQL 代理作业接收:Read-SQLTableData 无法识别
- vba - 如何在另一个分配的字段 Ms Access 中更新每个字段的时间戳
- android - 安装适用于 Android 的 cordova-plugin-google-analytics 插件后,应用程序构建显示“Cordova Play 服务版本适配器”错误