我有一个字符串,想要获得它的一部分。假设我有一个字符串说“set aid 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。
答案 0 :(得分:3)
和Tcl:
if {[regexp {^[[:alpha:]]+} $string letters]} {
puts $letters
}
答案 1 :(得分:2)
@ M42的答案版本返回所有匹配项:
my @allmatches = $aid =~ /([A-Z]{3}).*?\-\d\-\d/;
答案 2 :(得分:1)
怎么样:
$aid =~ /([A-Z]{3}).*?-\d-\d/;
对于任何长度大于0且不区分大小写的情况,请使用
$aid =~ /([a-zA-Z]+).*?-\d-\d/;
答案 3 :(得分:1)
如果你只想在 odu 中使用字母,那么这应该可以解决这个问题
$aid =~ /([[:alpha:]]+)/;