相关疑难解决方法(0)

Perl中的Regex Group:如何从正则表达式组中将元素捕获到数组中,以匹配字符串中未知数量的/多个/变量出现?

在Perl中,如何使用一个正则表达式分组来捕获多个匹配它的事件到多个数组元素?

例如,对于字符串:

var1=100 var2=90 var5=hello var3="a, b, c" var7=test var3=hello
Run Code Online (Sandbox Code Playgroud)

用代码处理这个:

$string = "var1=100 var2=90 var5=hello var3=\"a, b, c\" var7=test var3=hello";

my @array = $string =~ <regular expression here>

for ( my $i = 0; $i < scalar( @array ); $i++ )
{
  print $i.": ".$array[$i]."\n";
}
Run Code Online (Sandbox Code Playgroud)

我想看看输出:

0: var1=100
1: var2=90
2: var5=hello
3: var3="a, b, c"
4: var7=test
5: var3=hello
Run Code Online (Sandbox Code Playgroud)

我会用什么作为正则表达式?

我想在这里匹配的东西之间的共性是一个赋值字符串模式,所以类似于:

my @array = $string =~ m/(\w+=[\w\"\,\s]+)*/;
Run Code Online (Sandbox Code Playgroud)

其中*表示与该组匹配的一个或多个事件.

(我使用split()打折,因为有些匹配本身包含空格(即var3 ...),因此不会产生预期的结果.)

有了上面的正则表达式,我只得到:

0: var1=100 var2
Run Code Online (Sandbox Code Playgroud)

正则表达式是否可能?还是需要添加代码?

在查找"perl regex …

regex perl grouping match

47
推荐指数
4
解决办法
7万
查看次数

远离主要构造者

Visual Studio 2013的C#6预览版支持主要构造函数,该团队已决定不会将其纳入最终版本.不幸的是,我的团队使用主要构造函数实现了200多个类.

我们现在正在寻找最简单的迁移源代码的途径.因为这是一次性的事情,一个神奇的正则表达式替换字符串或hacky解析器将起作用.

在我花了很多时间写这样一个野兽之前,那里有没有人已经做过这个或知道更好的方法?

c# roslyn c#-6.0 primary-constructor

11
推荐指数
1
解决办法
1310
查看次数

正则表达式以选择重复组

我有一系列遵循特定格式的分组值,并希望使用单个表达式将它们捕获到组中.例如,我已经-group1 -group2 -group3尝试使用类似的东西.(-[\s\S]{1,}?) 这基本上允许我将整个字符串捕获到一个组中,但我希望能够分别反向引用每个值.我认为这?将迫使它非贪婪,因此,将模式匹配分成三个独立的组(例如).现在我只是重复参考,(-[\s\S]*?)但似乎应该有一个更优雅的表达.
谢谢!

.net regex

7
推荐指数
1
解决办法
3931
查看次数

是否有正则表达式的风格,允许我计算*和+运算符匹配的重复次数?

是否有正则表达式的风格,允许我计算*+运算符匹配的重复次数?我特别想知道它是否可以在.NET平台下运行.

.net regex repeat matching capturing-group

5
推荐指数
1
解决办法
1222
查看次数