我正在尝试从文本文件中获取一些内联注释,并需要一些表达式的帮助。
this comes before selection
this is on the same line %% this is the first group and it can have any character /[{3$5!+-p
here is some more text in the middle
this stuff is also on a line with a comment %% this is the second group of stuff !@#%^()<>/~`
this goes after the selections
我正在尝试获取%% \ s +之后的所有内容。这是我试过的:
%% \ S +(。*)$
但是匹配第一个%%之后的所有文本。不知道从哪里开始。
答案 0 :(得分:1)
大多数默认为点的引擎与换行符不匹配 AND 不是多行模式。
这意味着%%\s+(.*)$
不应该匹配,除非它找到了
字符串中最后一行的%%
。
使用内联修饰符(?..)
而不是尝试对抗它
覆盖外部交换机。
使用{em> off 全部点
的(?-s)%%\s+(.*)
答案 1 :(得分:0)
由于.
默认匹配任何字符,但与换行符匹配,因此您无需使用$
:
%%\s+(.*)
请参阅regex demo
说明:
%%
- 两个文字%
符号\s+
- 一个或多个空格(.*)
- 除换行符(捕获到第1组)以外的任何字符数0或更多var s = "THE_STRING";
var result = Regex.Matches(s, @"%%\s+(.*)")
.Cast<Match>()
.Select(p=>p.Groups[1].Value)
.ToList();
Console.WriteLine(string.Join("\n", result));