雷格斯:之前什么都可以

本文关键字:什么 都可以 雷格斯 | 更新日期: 2023-09-27 18:25:12

我正在编写自己的.INI文件读取器,并使其尽可能扩展和固定,以便在许多情况下工作。

维基说有些程序使用";"分号表示注释,有些使用"#"散列。

我正试图利用Regex来删除对任何行值的评论,以下是我的想法;

这是INI文本文件:

t1 = t2
t3 = t4 ;test
t5 = t6 #test

实践中的代码:

value = Regex.Match(value, ".*(?=;|#");

这确实有效!但只得到第二和第三条线。

积极的前瞻性'(?=;|#")',我该如何使其可选?(比如,只有当它包含';'或'#',然后用子字符串表示),希望我在这里的目标是明确的,如果不让我知道的话。

雷格斯:之前什么都可以

您可以使用以下内容:

^[^;#]*

这将匹配每一个非;或字符串开头的#字符。如果或#不存在,则所有内容都将匹配。否则,它将只匹配最多为;或#。

如果您不想匹配空行,请使用:

^[^;#]+