sed를 사용하여 정규 표현식에서 한정 기호와 메타 문자를 제거하는 데 문제가 있습니다. 문제를 복잡하게하기 위해 코드는 평가 내에서 사용하기위한 것입니다.perl sed 정규 표현식에서 한정 기호를 이스케이프 처리합니다.
$word_check = "about\s*[\w\s]+";
$word_check =~ s/\\\[.+\\\]//g;
$$word_count[$#$word_count + 1] +=() = $word_check =~ /(\w+)\s*/g;
Word_check는 정규식의 사본입니다. 정규식을 단어로 바꾸고 싶다면 과 일치해야합니다. 정규식을 사용하여 그렇게하십시오. 그런 다음 단어를 세어 결과를 배열에 저장하십시오. 선택의 여지 이유는 정규식이 여러 가지이며, ($ &)으로 작업 할 때 단어가 제거됩니다. 평가에서. 아래의 코드는 문자열로 사용됩니다.
for (my \$i = 0; \$i < \$\$ref_word_count[\$R]; \$i++) {
\$temp_str =~ s/^\\w+\\s*//;
}
확인 대답을 찾았습니다. 그냥 sed 문을 분해하고 대괄호를 문자 하나만으로 보는 것이 필요했습니다.
$word_check =~ s/i$//;
$word_check =~ s/[\.\+]//g;
$word_check =~ s/\\[sdwSWD]//g;
$word_check =~ s/[[]//g;
$word_check =~ s/[]]//g;
$word_check =~ s/[*]//g;
$word_check =~ s/[?]//g;
귀하의 질문에 명확하지 않습니다. 정확히하고 싶은게 뭐야? 입력 및 예상 출력이있는 실제 예제를 게시 할 수 있습니까? –