![](/img/trans.png)
[英]Regex python - Match newline only if it is followed by number or special character and space
[英]Regex locate number followed by space followed by character
我試圖只找到數字后跟空格和一個字符。
Exemple : text = "3 R"
並希望它是這樣的:
Exemple : text = "3. R"
我試過這個代碼:
text= re.sub(r'([0-9])(?!.*\d)', r'\1. ', text)
我越來越近了,但不知道我應該添加什么。
更新
文本 :
Évitez les conversations malsaines en utilisant les 3 R, à savoir
‘reformuler, recentrer et réorienter’. Créez un cadre confortable en
reformulant les phrases susceptibles de générer des émotions négatives. Vous
pouvez également reformuler des reproches tels que : « Cela m’ennuie que tu
passes autant de temps sur des projets de moindre importance qui ne mènent
nulle part » en disant plutôt « J’aimerais que tu consacres les efforts que
tu fournis dans ton travail à davantage de nouveaux projets plutôt qu’à
quelques projets peu importants... Je suis sûr que tu disposes maintenant de
suffisamment d’expérience pour gérer des projets inédits et ambitieux. »
我的正則表達式代碼:
text= re.sub(r'\s*(?!\.[’"])([.,?:])(?!(?<=\d.)\d)\s*', r'\1 ', text)
text= re.sub(r'\s*([-])\s*', r'\1', text)
text= re.sub(u"\u2013", " ", text)
text= re.sub(r'(\d)\s+(?=\d)', r'\1', text)
text= re.sub(r'(\d)\/+(?=\d)', r'\1 ', text)
text= re.sub(r'([0-9])\b(?!.*\d)',r'\1. ', text)
輸出:
Évitez les conversations malsaines en utilisant les 3 R, à savoir
‘reformuler, recentrer et réorienter’. Créez un cadre confortable en
reformulant les phrases susceptibles de générer des émotions négatives. Vous
pouvez également reformuler des
reproches tels que: Cela m’ennuie que tu passes autant de temps sur des
projets de moindre importance qui ne mènent nulle part en disant plutôt
J’aimerais que tu consacres les efforts que tu fournis dans ton travail à
davantage de nouveaux projets plutôt qu’à quelques projets peu importants, Je
suis sûr que tu disposes maintenant de suffisamment d’expérience pour gérer
des projets inédits et ambitieux.
我已經嘗試了你們建議的代碼,但沒有工作 idk 為什么,文本是一個長字符串。
問題可能是由於使用了過多的正則表達式??
我正在使用 python3.9
片段
根據您定義的約束(輸入/輸出)和我們的討論,您可以使用以下代碼段:
re.sub(r"(\d+)(?:\s+)(\w)", r"\1. \2", text)
這對我有用:
re.sub('(\d)\s([a-zA-Z])', r'\1. \2', text)
它將3 R
替換為3. R
。 也適用於更大的數字,如31789 R
和小寫3 r
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.