我有一个字符串,想得到它的一部分。假设我有一个字符串说“设置辅助 ODU4-4-3”。我只想从中获取ODU。而字符串的模式不是固定的。它可能有些像ODU、ODU4、ODUX。我不知道如何获取这个
$aid = "ODU4-9-1";
$aid =~ /(\w)+\d*-\d-\d/;
print " value is $1"
输出
value is ODU4
我只需要 ODU 的值,而字符串模式可能会改变。它可能只是 ODU-4-3,也可能是 ODU4-4-3。
和 Tcl:
if {[regexp {^[[:alpha:]]+} $string letters]} {
puts $letters
}
返回所有匹配项的@M42 答案版本:
my @allmatches = $aid =~ /([A-Z]{3}).*?\-\d\-\d/;
怎么样:
$aid =~ /([A-Z]{3}).*?-\d-\d/;
对于任何大于 0 且不区分大小写的长度,请使用
$aid =~ /([a-zA-Z]+).*?-\d-\d/;
如果您只想要odu中的字母,那么这应该可以解决问题
$aid =~ /([[:alpha:]]+)/;