拥有以下字符串:
<str1> <str2> <str3>
我正在尝试使用正则表达式,以便在C中获得以下3个字符串:
str1
str2
str3
我正在尝试使用以下正则表达式,但它似乎并没有产生我的目标:
<[a-zA-Z0-9]*.>
根据http://www.myregextester.com/index.php,正则表达式将产生
<str1>
<str2>
<str3>
如何取出&lt;&gt;?
此外,我还想仅使用格式匹配字符串,即使用3&lt;&gt;,不多也不少。如何处理?
答案 0 :(得分:6)
这可以通过perl兼容的正则表达式轻松完成,如下所示:
<([^>]+)>
您必须确保告诉您的库搜索所有匹配项,而不是尝试将正则表达式与整个字符串匹配。你最终将str1,str2和str3作为第一组匹配。
答案 1 :(得分:1)
如果更改为&lt;([a-zA-Z0-9] *。)&gt;
,该怎么办?答案 2 :(得分:0)
这个正则表达式可以完成这项工作:
/^<([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
str3
答案 3 :(得分:0)
≤(?[A-ZA-Z0-9] *)&GT; - 然后您访问每个匹配的第二个匹配组。 (有关如何访问http://www.myregextester.com/index.php
上的匹配组的PHP示例你可以通过积极的外观(http://www.regular-expressions.info/lookaround.html)这样做(?&lt; =&lt;)[a-zA-Z0-9] *(?=&gt;)但不是所有口味都支持它( http://www.regular-expressions.info/refflavors.html)
免责声明:如果您不了解其工作原理和原因,请不要从网络上复制正则表达式。这包括Stack Overflow的答案!
答案 4 :(得分:0)
您可以简单地使用下面给出的正则表达式来对角括号进行检查。
var text= "<span></span>";
var check = new RegExp(/[^>]\d+[a-z]*[^<])/ );
var valid = check text=
if(!valid) {
return false;
}
else
{
return true;
}