【发布时间】:2016-03-04 21:42:40
【问题描述】:
我正在编写自己的 .INI 文件阅读器,并使其尽可能广泛和固定,以在许多情况下工作。
维基说一些程序使用';' cmets 使用分号,有些使用 '#' 哈希。
我正在尝试使用正则表达式来删除任何行值上的 cmets,这就是我想出的;
这是 INI 文本文件:
t1 = t2
t3 = t4 ;test
t5 = t6 #test
实际代码:
value = Regex.Match(value, ".*(?=;|#");
哪个有效!但只得到第二和第三行。
积极的前瞻 '(?=;|#")',我如何使它成为可选的?(比如,只有当它包含 ';' 或 '#' 然后子串它),希望我的目标很明确,如果不告诉我。
【问题讨论】:
-
如果它是可选的前瞻,那么前瞻不会做任何事情。 “子串”是什么意思?
-
我希望它在 ';' 之前返回任何内容或 '#' 如果那里有一个,如果没有就全部返回。