#perl #pdf
#perl #PDF
Вопрос:
Непревзойденный [ в регулярном выражении; отмечен <— ЗДЕСЬ в m / <— ЗДЕСЬ / at ./pdf_parse.pl строка 37.
На самом деле я разбираю файл .pdf слово за словом [чтобы составить из него словарь] строка 37:-
if(grep(!/$word/,@line_rd)){
}
Ну, на самом деле word, в котором скрипт синтаксического анализа перестает работать, написан другим шрифтом [в стороне от pdf, который я анализирую], это виновник здесь?
Распознает ли CAM:: PDF слова, написанные разными шрифтами? Что мне следует предпринять, чтобы остановить это!
Ответ №1:
Вам нужно заключить в кавычки $word
в регулярном выражении, если оно может содержать специальные символы (например, [
или даже .
). Попробуйте с:
if (grep(!/Q$wordE/, @line_rd)) {
...
}
Если вы хотите создать словарь из всех слов, используйте хэш:
my %allwords;
...
# each time you have a new word incoming from the parser:
$allwords{$word} ;
В конце %allwords
хэш будет содержать отдельные слова в качестве ключей, а количество слов — в качестве значений. Вы могли бы, например, распечатать его с помощью:
map {
print "Word $_: count: ", $allwords{$_}, "n";
} (sort keys %allwords);
Комментарии:
1. тем не менее, слова, написанные разными шрифтами, не отображаются properly…it отображается как «^ @ W ^ @ ^@ S ^ @ H ^ @ G» !
2. Нужно ли мне использовать какой-либо стиль кодировки или мне нужно преобразовать все слова в обычный текст?
3. вам нужно будет опубликовать немного больше кода, чтобы показать, как вы получаете,
$word
и@line_rd
это ни на что не похоже.4. В конечном итоге CAM:: PDF извлек не все PDF-файлы contents…it может извлекать только обычный текст [я не говорю об изображениях и т.д., Однако не обычный текст, такой как обычно код c или переменные пути, такие как /bin / perl …. которые обычно имеют шрифт, отличный от обычного текста].
5. @mandy: шрифты и кодировка — это две совершенно разные вещи. если части вашего PDF-файла каким-либо образом закодированы, то эти части необходимо соответствующим образом декодировать, прежде чем вы сможете использовать их в регулярных выражениях. CAM :: PDF имеет множество функций синтаксического анализа, поэтому, не зная, что именно вы делаете и что содержат ваши PDF-файлы, вам довольно сложно помочь.