3 votos

KMyMoney: Extraer beneficiario del campo de memo usando expresiones regulares

Versión corta:

¿Cómo funciona la función "Extraer el beneficiario del campo de observaciones" en KMyMoney?

Lo puedes encontrar aquí: KMyMoney > Cuentas > Seleccionar cuenta > "Editar cuenta" > "Configuración en línea" > "Extraer beneficiario del campo de observaciones usando expresiones regulares"

Captura de pantalla

TL;DR

Busqué en Google, busqué en el "Manual de KMyMoney para la versión de KMyMoney 4.8.1" y revisé la documentación de la clase QRegExp http://doc.qt.io/archives/qt-4.8/qregexp.html#1 sin éxito. Cualquier RTFMs con indicaciones a documentación específica serían muy apreciadas.

Aquí tienes algo de información de antecedentes e información de transacciones y lo que intenté:

Mi versión de KMyMoney es 4.8.0, construida sobre KDE Plattform 4.14.16 en Ubuntu 16.04.3, instalada a través de este PPA https://launchpad.net/~michael-ruoss/+archive/ubuntu/kmymoney Hubiera preferido la versión 4.8.1, pero no encontré un PPA de la 4.8.1 compilada con soporte de AqBanking (si conoces uno, estaría agradecido por una pista).

Uso KMyMoney con Aqbanking para descargar datos de transacciones de mi banco. Dependo de la categoría predeterminada del beneficiario para lograr asignaciones automáticas de categorías.

Esto funciona perfectamente para transferencias y pagos mediante débito directo, ya que en estos casos mi banco (GLS) completa correctamente el campo del beneficiario.

Sin embargo, para pagos con tarjeta de débito la información del beneficiario solo se incluye en el campo de observaciones.

Por lo tanto, me gustaría extraer la información del beneficiario del campo de observaciones.

Estaba muy contento cuando descubrí "Editar cuenta" > "Configuración en línea" > "Extraer beneficiario del campo de observaciones usando expresiones regulares".

Aquí tienes algunas transacciones de ejemplo para los tres tipos (2 funcionan, 1 no):

Débito directo (funciona correctamente, campo del beneficiario completado):

01/05/2018 Beneficiario: Berliner Mieterverein e.V. Mieterverein Beitrag bis 12/2018 EREF: 11704290B43060967 CREF: XW3000-DD2018-01-04-05.38.08.168352 MREF: 11704290 CRED: DE67ZZZ00000173654 BELADEBEXXX/DE85100500000073729000

Transferencia (funciona correctamente, campo del beneficiario completado):

Beneficiario: Andreas Meier BIC:WELADED1PMBIBAN:DE02160500001000748486Datum: 12.01.18 Zeit: 11:42UFT 0011991436 TAN 979262Tanzkurs Januar 2018 WELADED1PMB/DE02160500001000748452

Pago con tarjeta de débito (campo del beneficiario vacío, el beneficiario es "EDEKA GOETZE", solo se incluye en el campo de observaciones):

Kartenzahlung DebitkarteEDEKA GOETZE/BERLIN09.01.2018/17.49 girocard58069551/093613/ECTL/NPIN64051/4118553100/2/1220REF 864315/260050 EREF: 58069551093613090118174902 CREF: XW3000-DD2018-01-10-12.07.38.430455 MREF: 864315 CRED: DE37ZZZ00001651213 EDEKDEHHXXX/DE78200907004364716071

Pago con tarjeta de débito (campo del beneficiario vacío, el beneficiario es "ALDI SAGT DANKE 20 047", solo se incluye en el campo de observaciones):

Beneficiario: Kartenzahlung DebitkarteALDI SAGT DANKE 20 047/Berlin09.01.2018/10.17 girocard54402607/565180/CICC/FPIN64051/4118553100/0/1220 EREF: 54402607565180090118101714 CREF: XW3000-DD2018-01-11-00.37.25.206760 MREF: 561442 CRED: DE03ZZZ00001606817 GENODEDDXXX/DE42300600100000135546

Pago con tarjeta de débito (campo del beneficiario vacío, el beneficiario es "denns Biomarkt", solo se incluye en el campo de observaciones):

Beneficiario: Kartenzahlung Debitkartedenns Biomarkt/Berlin11.01.2018/09.45 girocard61440314/079189/CICC/FPIN64051/4118553100/2/1220REF OFFLINE EREF: 61440314079189110118094513 CREF: XW3000-DD2018-01-12-11.56.10.332472 MREF: OFFLINE CRED: DE22ZZZ00000151669 WELADEDDXXX/DE86300500000001052141

Entonces, si el campo de observaciones comienza con "Kartenzahlung Debitkarte", necesito todos los caracteres siguientes hasta la primera /

Así que hice clic en "Editar cuenta" > "Configuración en línea" > "Extraer beneficiario del campo de observaciones usando expresiones regulares".

¿Cómo se supone que deben usarse los campos "Expresión regular para el Beneficiario" y "Expresión regular para el Campo de Observaciones"?

No sabiendo qué esperar, intenté usar expresiones regulares que extraerían todo y luego las recortaría solo a lo que necesito. Usar estas expresiones tanto para el Beneficiario como para el Campo de Observaciones no tuvo ningún efecto: (.?)
[\s\S]

Cuando intenté .* en ambos campos, el campo de observaciones de la última transacción se redujo a su última línea: " WELADEDDXXX/DE86300500000001052141"

Así que hubo algún tipo de efecto. Sin embargo, el campo del beneficiario seguía estando vacío.

Como mencioné anteriormente, busqué en Google, busqué dentro del "Manual de KMyMoney para la versión de KMyMoney 4.8.1" y revisé la documentación de la clase QRegExp http://doc.qt.io/archives/qt-4.8/qregexp.html#1 sin éxito.

¿Qué variante de regexp implementa la clase QRegExp y cuál se utiliza para la extracción del beneficiario?

¿Cómo se supone que deben usarse los dos campos?

Cualquier RTFMs con indicaciones a documentación específica serían muy apreciadas.

¡Gracias!

Timon

1voto

Tony Puntos 6

Se utilizará el primer grupo de captura, así que tienes que usar paréntesis. Por ejemplo, esto debería extraer el beneficiario de tus ejemplos:

Kartenzahlung Debitkarte(.+?)\/

0 votos

¡Gracias clktmr! Recibí una respuesta similar a través de la lista de correo de usuarios de kmymoney. Esta es la expresión que estoy usando en este momento: ^Kartenzahlung Debitkarte([^/]+)/.*

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X