2012-03-12 3 views
0

여기 내 입력 문자열 문자 (들)의 수를 계산합니다 :
줄 뭔가를해야만 foo는 줄 뭔가를해야만 foo는PCRE 패턴

나는 문자의 번호 (예 : 't')를 계산하고 싶은

바 & 사이 foo는
줄 뭔가를해야만 foo는 -> 1
줄 뭔가를해야만 foo는 - 나는 우리가
/bar(.*?)foo/
를 사용한 다음 경기에서 문자의 수를 셀 수있어> 1

[1]와 문자열 함수

계산을 위해이 문자열을 사용하는 방법이 있습니까?

+2

* [답변 수락] (http://meta.stackexchange.com/a/5235/163680) 이미 * – Qtax

답변

1

펄 솔루션 :

$_ = 'bar test this thing foo'; 
my $count = /bar(.*?)foo/ && $1 =~ tr/t//; 
print $count; 

출력 :

4 
(?{ code }) 단일 표현 사용

그냥 재미를 위해, :

$_ = 'bar test this thing foo'; 

my $count = 0; 
/bar ((?:(?!bar)[^t])*+) (?:t (?{ ++$count; }) (?-1))*+ foo/x or $count = 0; 

print $count; 
0

@Qtax을 : t 그는 PCRE를 말하고 있습니다 ... 그래서 그것은 정확히 perl이 아닙니다. 그러므로 (? {code}) 대부분 지원되지 않을 것입니다 (전체 perl 코드는 말할 것도 없습니다). 두 솔루션은 시원하지만)

@tqwer : 내가 정규식으로 계산 뒤에 논리가 어떻게 될지 확실하지 오전하지만 당신은 .. 을 경기를 가져온 다음 ""로 [^ t] 교체하고 길이를 확인하실 수 있습니다 ;)