Bonjour,

Je voudrais extraire une donnée issu d'un pdf. La donnée peut se trouver sous trois configurations.
- la donnée sera toujours encadré par le mot valeur et le caractère (
- cas 1: la donnée est en deux mots, str1 et str2 dont str2 est passé à la ligne.
- cas 2: la donnée est en un seul mot.
- cas 3: la donnée qui est en deux mots sont tous les deux à la ligne

J'utilise la bibliothèque stringr pour employer des expressions régulière. En utilisant cette expression "(?<=valeur\\s).*?(?=\\s\\()" je n'ai réussi qu'a avoir le cas 2 et 3.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
library(stringr)
 
c1 <- "rgsef ... fcjzdh valeur str1 
str2 (dsrge) ... segfs"
c2 <- "erfgze ... sdgegsf valeur str
(dgvdfq) ... dfgqefq"
c3 <- "gvef ... esrfef valeur
str1 str2 (sretgse) ... sefef "
 
pattern$action   <- "(?<=valeur\\s).*?(?=\\s\\()"
 
> str_match_all(c1, pattern$action)
[[1]]
     [,1]
> str_match_all(c2, pattern$action)
[[1]]
     [,1] 
[1,] "str"
> str_match_all(c3, pattern$action)
[[1]]
     [,1]       
[1,] "str1 str2"