我有以下类型的文本:
dbt とは何をするツールなのか?2022.02.09data build tool|dbt|Tech|こんにちは、ソフトウェアエンジニアの冨田です。
我想删除所有出现YYYY.MM.DD的所有方式通过'技术|”包括在内。
所以我希望最后的字符串看起来像这样:
dbt とは何をするツールなのか?こんにちは、ソフトウェアエンジニアの冨田です。
我做了下面的代码,但它无法删除'技术|':
text = re.sub(r'\d{4}\.\d{2}\.\d{2}(?=.*Tech|)', '', text)
我将感激你的善意建议。
2条答案
按热度按时间ujv3wf0j1#
匹配
Tech|
,而不是将其Assert到右侧,转义管道以按字面意思匹配它,并使用非贪婪.*?
匹配Tech|
的第一次出现字边界
\b
防止部分字匹配。输出量
请参见Python demo。
yfwxisqw2#
Tech|
用作分隔符,以便匹配的内容位于日期之间和定界符。如果找不到
Tech|
或者这个文字可能会改变,这就有风险。请注意,分隔符的任何缺陷或缺失部分都将导致
遍历所有Unicode字符以查找下一个分隔符的匹配
把他们也消灭了
如果这是一个1-关闭,那么没有问题。
日期后面的ASCII字符似乎是更好的分隔符。
另一种方法是在日期后面加上ASCII分隔符。
代码
您也可以保留
Tech|
分隔符,但将.*?
替换为ASCII和白色,以便在发生更改时不会过冲。