hier erfassen ist ein String:Wie beide Look-Ahead-Lookbehind regex python
str = "Academy \nADDITIONAL\nAwards and Recognition: Greek Man of the Year 2011 Stanford PanHellenic Community, American Delegate 2010 Global\nEngagement Summit, Honorary Speaker 2010 SELA Convention, Semi-Finalist 2010 Strauss Foundation Scholarship Program\nComputer Skills: Competency: MATLAB, MySQL/PHP, JavaScript, Objective-C, Git Proficiency: Adobe Creative Suite, Excel\n(highly advanced), PowerPoint, HTML5/CSS3\nLanguages: Fluent English, Advanced Spanish\n\x0c"
Ich möchte von "addtional" auf "Sprachen" erfassen, so ich diese Regex schrieb:
regex = r'(?<=\n(ADDITIONAL|Additional)\n)[\s\S]+?(?=\n(Languages|LANGUAGES)\n*)'
Es fängt jedoch nur alles zwischen ([\s\S]+)
. Es fängt nicht ADDTIONAL
& Languages
. Was fehlt mir hier?
Der ganze Sinn von Lookahead und Lookbehind ist, dass sie ** nicht ** im Spiel enthalten sind. Es erfordert nur, dass sie in der Zeichenfolge vorhanden sind. – Barmar
Verwenden Sie normale Erfassungsgruppen, wenn Sie sie einschließen möchten. – Barmar
Oder verwenden Sie nicht erfassende Gruppen, wenn Sie sie einschließen möchten, aber nicht als separate Captures. – Barmar