【发布时间】:2021-02-09 15:04:10
【问题描述】:
我有一个这样的字符串:
%1n--%2n##%12n
我需要所有匹配 %1n、%2n、%12n 的匹配项,并且我还需要所有不匹配的部分。例如: -- 和 ##
我的正则表达式模式是(%\d*n)(?!(%\d*n)*)。
我得到了匹配的部分 (%1n, ...) 以及所有非匹配部分的空匹配。但我的示例的结果应该是:
- 匹配:%1n
- 匹配:--
- 匹配:%2n
- 匹配:##
- 匹配:%12n
谁能告诉我正确的正则表达式模式以获得我的预期结果?
【问题讨论】:
-
编程语言是什么?也许你只需要
Regex.Split(text,@"(%\w+)")(C#)或s.split(/(%\w+)/)(JS) -
也许
%\d+n|.+?(?=%\d+n|$)? -
或者:
%\d+n|(?:(?!%\d+n).)+ -
编程语言是vb.net(或者c#,不过没关系)