具有以下字符串:
<str1> <str2> <str3>我正在尝试执行正则表达式,以便在C中获得以下3个字符串:
str1
str2
str3我正在尝试使用以下正则表达式,但它似乎没有产生我想要的结果:
<[a-zA-Z0-9]*.>根据http://www.myregextester.com/index.php的说法,正则表达式将产生
<str1>
<str2>
<str3>我如何去掉<>?
另外,我也希望只匹配具有格式的字符串,即3<>,不多也不少。如何实现?
发布于 2010-12-10 20:07:26
使用与perl兼容的正则表达式可以很容易地做到这一点:
<([^>]+)>您只需确保告诉您的库搜索所有匹配项,而不是尝试将正则表达式与整个字符串进行匹配。然后,您将以str1、str2和str3作为第一个小组赛。
发布于 2010-12-10 19:57:10
如果您将其更改为<(a-zA-Z0-9*.)>
发布于 2010-12-10 20:03:28
这个正则表达式可以完成这项工作:
/^<([a-zA-Z0-9]*?)>\s<([a-zA-Z0-9]*?)>\s<([a-zA-Z0-9]*?)>$/Perl中的示例:
#!/usr/bin/perl
use 5.10.1;
use strict;
use warnings;
my $re = qr/^<([a-zA-Z0-9]*?)>\s<([a-zA-Z0-9]*?)>\s<([a-zA-Z0-9]*?)>$/;
my $str = q!<str1> <str2> <str3>!;
$str =~ s/$re/$1\n$2\n$3/;
say $str;输出:
str1
str2
str3https://stackoverflow.com/questions/4408552
复制相似问题