【发布时间】:2020-03-13 18:43:30
【问题描述】:
我想删除短语中的第二部分,只要它超过 3 个字符(字母和数字),如果字符为 3 个或更少,则添加空格。
在以下测试集中:
CENTRAL CARE HOSPITAL/HOPITAL CENTRALE DE SOINS
ABC/DEF
FOUNDATION INSTITUTION/FUNDATION DEL INSTITUTO
HAPPY SPRING BREAK 20/20
结果应该是:
CENTRAL CARE HOSPITAL
ABC DEF
FOUNDATION INSTITUTION
HAPPY SPRING BREAK 20 20
我的第一次尝试是这样的:
([^\/]+$)
但是,斜杠后面的所有字符串都没有了,因为它没有任何限制。我需要包含一个否定的前瞻性说明,当斜杠后面的字符超过 3 个时,我需要删除字符串:
text= re.sub(r'(^[^\/]+)(?:[\/])(?![A-Z]{3})',
r'\1 ',
text,
0,
re.IGNORECASE)
我得到以下不正确的信息:
CENTRAL CARE HOSPITAL/HOPITAL CENTRALE DE SOINS
ABC DEF
FOUNDATION INSTITUTION/FUNDATION DEL INSTITUTO
HAPPY SPRING BREAK 20 20
如何去掉前面的斜线和字符串?
谢谢
【问题讨论】:
-
您需要首先完整地陈述您的问题,而不是先说出您尝试过的内容,然后再充实问题。你的第一句话很好,但它是对问题的不完整描述。此时,您需要将示例与所需结果一起提供,例如,“例如,给定以下测试集......我希望返回以下内容:......然后继续提供您的代码和您获得的错误结果。请注意,在返回值中包含“(正确)”会造成混淆。
-
正如@CarySwoveland 指出的,输入字符串和预期输出字符串的清晰演示是必须的。
-
抱歉,我更新了问题以便更容易理解。
-
好多了!请注意,您需要在每个问题中采用这种方法。用例子前面的文字表述的问题越完整越好。目标是使问题的陈述如此完整和明确,以至于示例不是必需的(尽管通常是可取的)。
-
我从您的输出中看到了另一个要求。斜线转换为空格字符。为什么?
标签: python regex regex-lookarounds regex-negation regex-group