Reputation: 51
I wonder if you could help me refine the ([^\s\d])(-\s+) (replacement: $1) regex so that it could do the following:
It should only join hyphenated words if the letter after the hyphen is a lowercase letter. This means that the second part of the divided word canNOT start with an upper case letter, a punctuation mark, a bracket, a symbol or a number.
It should NOT unite hyphenated words where the second part of the divided word is either "és " (and) or "tér " (square). There is a space after each word.
I would like to use the modified regex in both Notepad++ and Python. In the application using Python I can have only a one-line regex (separated by comma) such as ([^\s\d])(-\s+),\1
Example - the following text should remain unchanged after applying the regex.
Nyugat- Németország kormánya
Text text text Kelet-
Európa
Text text text Valéria-
tér sarok.
érettségi után a Színház- és
Filmművészeti Főiskolára járt
text text text elválaszt-
(this is due to OCR errors)
2001-ben
8-10
Szükséges-e
Examples for what should be matched: The original OCR-ed newspaper text:
Minden demokrata erőnek közö-
sen kell fellépnie és „falat húznia"
a Jobbik elé - mondta Ke-
rék-Bánczy Szabolcs, az MDF el-
nökségi tagja keddi sajtótájékoz-
tatóján. Kerék-Bárczy közölte: mi-
közben politikai konszenzus ala-
kult ki a magyar parlamenti pár-
tok között a szlovák nyelvtör-
vénnyel kapcsolatban, pozícióikat
súlyosan rombolja a Jobbik tevé-
kenysége. Ezt azzal magyarázta,
hogy a Jobbik állandó hivatkozási
alapot biztosít a szlovákiai kor-
mánypártoknak. hogy folyamato-
san ujjal mutogathassanak Ma-
gyarországra, mert itt is van egy
EP-képviselettel rendelkező cso-
port, amely mások kirekesztésére
és az irredentizmusra építi politi-
káját. Az MDF ezért kezdeménye-
zi, hogy az EP-képviselők nyilvá-
nítsák ki...
After applying the regex:
Minden demokrata erőnek közösen kell fellépnie és „falat húznia"
a Jobbik elé - mondta Kerék-Bánczy Szabolcs, az MDF elnökségi tagja
keddi sajtótájékoztatóján. Kerék-Bárczy közölte: miközben politikai
konszenzus alakult ki a magyar parlamenti pártok között a szlovák
nyelvtörvénnyel kapcsolatban, pozícióikat súlyosan rombolja a
Jobbik tevékenysége. Ezt azzal magyarázta,
hogy a Jobbik állandó hivatkozási
alapot biztosít a szlovákiai kormánypártoknak. hogy folyamatosan
ujjal mutogathassanak Magyarországra, mert itt is van egy
EP-képviselettel rendelkező csoport, amely mások kirekesztésére
és az irredentizmusra építi politikáját. Az MDF ezért kezdeményezi,
hogy az EP-képviselők nyilvánítsák ki...
Upvotes: 1
Views: 80
Reputation: 626774
You can use
([^\W\d_])-\s+(?=(?!(?:és|tér)\b)[a-záéőúüűöóí])
See the regex demo. Details:
([^\W\d_])
- any one letter-
- a hyphen\s+
- one or more whitespaces(?=(?!(?:és|tér)\b)[a-záéőúüűöóí])
- a positive lookahead that requires (immediately to the right of the current location):
(?!(?:és|tér)\b)[a-záéőúüűöóí]
- any char from the a-záéőúüűöóí
set that is not a starting letter of the és
or tér
char sequences that are immediately followed with a word boundary position.Upvotes: 1