0
votes

I have the following german text with some literature references:

... Im Rahmen der psychologischen Anwendungsfächer hat sie in den letzten Jahren einen rasanten Zuwachs zu verzeichnen, sowohl hinsichtlich ihrer Forschungsindikatoren (Publikationen, Drittmitteleinwerbungen, Berufungen auf Professuren) als auch ihrer praktischen Bedeutung, insbesondere im Diskurs der Empirischen Bildungsforschung und – nicht zuletzt – der Anzahl ihrer Lehrbücher und Nachschlagewerke (Hasselhorn & Gold, 2017; Klauer & Leutner, 2012; Renkl, 2008; Rost, Sparfeldt & Buch, 2018; Seidel & Krapp, 2014; Schnotz, 2011; Wild & Möller, 2015 etc.). Warum und mit welchem Ziel also, so kann man berechtigt fragen, noch ein Lehrbuch der Pädagogischen Psychologie? Mit der Umstellung der Psychologieausbildung an den deutschen Universitäten vom Diplom- auf ein Bachelor-Master-System (BSc/MSc) ist auch für die Pädagogische Psychologie eine neue Situation entstanden. Das Rahmenmodell zur Ausgestaltung des BSc/MSc-Angebots der Deutschen Gesellschaft für Psychologie (DGPs, 20051) fasst die Pädagogische Psychologie unter die „etablierten Anwendungsfächer der Psychologie“ und sieht deren Einführung im Studienmodell schon für das 3. und 4. Fachsemester im Bachelor-Studiengang vor... Folgt man der Argumentation von Vertretern behavioristischer Lehrzieldefinitionen, dann besteht ein Lehrziel in der Bewältigung einer Menge von Aufgaben, die ihrerseits wiederum einen Gegenstandsbereich vollständig oder repräsentativ abbilden (Klauer, 1987).

The goal is to match the bold substrings while omitting the italic ones. The rule should be something like "match anything in parentheses that has at least a digit in it".

I tried it with rules like \(.*?\d+.*?\) but that matches over the first two parentheses blocks, from (Publikationen to etc.).

2

2 Answers

2
votes

You could use 2 negated character classes matching any char except a digit or parenthesis before the digit, and match any char except parenthesis after the digit.

\([^()\d]*\d[^()]*\)

Explanation

  • \( Match (
    • [^()\d]* Match 0+ times any char except (, ) or a digit
    • \d Match a digit
    • [^()]* Match 0+ times any char except ( or )
  • \) Match )

Regex demo | Python demo

3
votes

This should work for your example text you gave us. Make sure you don't match a ).

\([^)]*?\d+.*?\)