我有一个数字的字符串,如“4 2 6 7”,变量i
这是一个整数。如何确定字符串中是否包含i
?该代码是用Perl ...匹配一个字符串和一个整数在perl
0
A
回答
4
使用此功能:
my $string = "4 2 6 7";
my $i = 4;
if ($string =~ /\b$i\b/) {
print "$string contains $i\n";
}
1
使用正则表达式变量i与单词边界匹配(假设你的数字串有每个整数后面有一个空格):
/\b$i\b/
3
可以使用分割来创建从字符串“4 2 6 7”的阵列,然后用grep搜索数组。
$ perl -wle 'if (grep {$_ eq $i} split(" ", "4 2 6 7")) {print "matched\n";}'
编辑: 或者你可以用“==”,而不是“EQ”作为比较运算符来匹配数字而不是字符串。
+1
“eq”是一个字符串比较。更好的是“==”,那么“3.0”和“3”也会匹配。这可能是人们想要的。 –
+0
@Sid。好点子。值得一提的是'eq'和'=='之间的区别。 –
2
对于它的乐趣,在~~
智能匹配运营商:
use 5.012;
my $string = "4 2 6 7";
my @test = split /\s+/, $string;
for(0 .. 9) {
say "$_ is contained in $string" if $_ ~~ @test;
}
在智能匹配运营商的强大有一个很好的讨论在perlsyn被发现。这可能有点棘手,因为它不是关联运算符,并且规则深深植根于DWIMery而不是一致性。但它非常强大。
0
下面是一个不关心字符串的定界符或格式的版本。它只是提取数字序列并将它们与搜索模式进行比较。
为了方便起见,我把它变成了一个子程序和一个功能程序。
use warnings;
use strict;
my $string = "4 22 6 7";
my $i = shift; # number you want to search for
print "Checking '$string' for: '$i'\n";
print "Result is: ", (is_in($string, $i) ? "Yes" : "No");
sub is_in {
my ($string, $i) = @_;
while ($string =~ /(\d+)/g) {
return 1 if ($1 == $i);
}
return 0;
}
输出示例:
C:\perl>t4.pl 4
Checking '4 22 6 7' for: '4'
Result is: Yes
C:\perl>t4.pl 22
checking '4 22 6 7' for: '22'
Result is: Yes
C:\perl>t4.pl 2
checking '4 22 6 7' for: '2'
Result is: No
0
您可以split功能的帮助下很容易地做到这一点。
use warnings;
my $string = "4 2 6 7";
my $i = 6; #use any value of $i
my @x = split//, $string;
my $count = 0;
foreach (@x)
{
if($_ == $i)
{
print "matched at position $count"; die $!;
}
$count++;
}
print "integer doesn't found in string";
相关问题
- 1. 如何查找有一个字符串匹配的字符串和一个字符串在Linux中不匹配
- 2. 匹配整数在一个字符串Lex
- 3. 匹配一个字符串与数组
- 4. 用PHP匹配一个字符串到另一个字符串
- 5. 在一个字符串中多次匹配一个字符类
- 6. 在elasticsearch中匹配一个字符串?
- 7. 的Javascript匹配“\”在一个字符串
- 8. perl中匹配字符串的第一个字
- 9. 为Perl substr分配一个字符串?
- 10. 我怎么两个字符串和整数匹配到一个文件
- 11. 当这个字符串与一个句子的一部分匹配时从数组中删除字符串 - Perl
- 12. perl的+一行变化串仅匹配两个字符合
- 13. perl匹配两个文件中的字符串的一部分
- 14. 如何匹配包含在一个字符串到另一个字符串
- 15. 匹配一个随机字符串
- 16. 匹配字符串中的一个子
- 17. 严格匹配字符串和整数
- 18. perl正则表达式匹配一个字符串并在其旁边添加一个字符串
- 19. 在php中添加一个字符串和一个整数
- 20. SQL:匹配整个字符串unsorted
- 21. 匹配一个字符串中的数字只有一次
- 22. 在另一个数据帧匹配字符串的一部分在数据帧为一个字符串
- 23. 拆分一个Perl字符串子串和一个空格
- 24. mongoose FindbyId和数组匹配到一个字符串
- 25. 匹配到一个字符
- 26. 函数匹配字符串的最后一个字符
- 27. 仅匹配第一和一个字符串
- 28. 匹配第一个字符,如果匹配删除整行
- 29. 选择与部分字符串匹配的第一个完整字符串
- 30. Perl函数来grep一个字符串
如果字符串包含 “3.0” 和'i'是3,那么你的代码将不匹配。更好的是Himadri Choudhury的split/grep解决方案。 –
是的,但它也会匹配时,我是0.但是,“我是一个整数”导致我的事情“数字串”实际上是一个“整数串” – ysth
是'我'是整数,但他没有说字符串中的数字是整数。 –