【发布时间】:2020-10-05 15:14:19
【问题描述】:
我需要在每个新单词开始之前在字符串之间插入换行符(输入标记)。
字符串:
test (n) trial, experiment, check run (v) race, rush speed (n) race, sprint, rush, dash, zoom
预期:
test (n) trial, experiment, check
run (v) race, rush
speed (n) race, sprint, rush, dash, zoom
这个正则表达式选择括号之前的单词。但是如何在正确的位置插入回车标记呢?
\w+(?=\s+((.*?)))
更新:
答案不适用于我需要处理的实际字符串。 unicode 字符串是否被正则表达式区别对待?
import re
regex = r"(\w+)(?= (?:[()])).*?"
test_str = "खत (स्त्री) पाहा : भेट मुलगा (पु) पोर‚ पोरगा‚ पोरटा‚ कारटा‚ किशोर‚ कुमार‚ कुमारिका‚ तरुण; लग्नाचा/उपवधू मुलगा; पाहा : पुत्र ‚ पुरुष (n) boy, lad, kid, urchin; पाहा : पुत्र ‚ पुरुष मुलगी (स्त्री) पोर‚ पोरगी‚ पोरटी‚ बाला‚ बाळा‚ बालिका‚ छोकरी‚ छोटी‚ बेटी‚ कारटी‚ नग्निका‚"
subst = "\\n\\1"
result = re.sub(regex, subst, test_str , 0, re.MULTILINE)
if result:
print (result)
第一个换行符是正确的“\nखत”,但第二个换行符是错误的“पुरु\nष”。第三个和第四个都不见了。
预期:
खत (स्त्री) पाहा : भेट
मुलगा (पु) पोर‚ पोरगा‚ पोरटा‚ कारटा‚ किशोर‚ कुमार‚ कुमारिका‚ तरुण; लग्नाचा/उपवधू मुलगा; पाहा : पुत्र ‚
पुरुष (n) boy, lad, kid, urchin; पाहा : पुत्र ‚ पुरुष
मुलगी (स्त्री) पोर‚ पोरगी‚ पोरटी‚ बाला‚ बाळा‚ बालिका‚ छोकरी‚ छोटी‚ बेटी‚ कारटी‚ नग्निका‚
【问题讨论】:
-
请解释一下你是如何识别一个新词的?
-
括号前的词是新词
-
this 有帮助吗?
-
用 unicode 字符串示例更新了我的问题。
标签: python regex unicode python-unicode