【发布时间】:2019-05-23 17:03:45
【问题描述】:
我正在尝试在 C# 中使用正则表达式替换,尽管我在让模式正确对齐时遇到了一些问题。我要做的是根据前两组替换某些组合,但如果它与第三组的模式匹配则不替换。到目前为止我所拥有的是
var pattern = @"(,)|(\[\{)|(^:\[[*]])";
string NewLineValue = Regex.Replace(LineValue, pattern,Environment.NewLine);
基本上我想替换字符串中的所有逗号或[{ 组合,但如果逗号出现在[[]] 字符内(例如[[1234,5678]]),则不替换
非常感谢任何帮助...
【问题讨论】:
-
将字符“^”放在方括号内时用于创建一个否定字符类。您在第三组中使用它的方式仅意味着它是文本的开头。
-
听起来你想解析一个 JSON 文件.....
-
一个简短的输入示例和所需的输出可能会有所帮助。此外,如果您不想像@CamiloTerevinto 猜测的那样解析 JSON 文件(如果是的话,您可能会更容易),请尝试使用负前瞻。见:regular-expressions.info/lookaround.html
-
@CamiloTerevinto 这是最终目标,但是目前我正试图将一些条目转换为可读格式,以供最终用户确定需要哪些元素......行项目在文件中也不遵循一致的格式,因为它们是活动日志条目并且逐行更改。
-
@shwartz,谢谢。如果“^”符号出现在 [[x]] 部分中,您能否详细说明需要放置“^”符号以忽略“,”的位置?非常感谢您的建议。