我在正则表达式上遇到了点麻烦。从本质上讲,我想删除“<”和“>”之间的所有内容,但前提是“<”后面没有空格,“>”前面没有空格。例如,应删除“”,但不应删除“< a>”和“”。
到目前为止,我有这个:
cleanText = re.sub('<[^>]+>', ' ', text)
这是可行的,除了我不知道如何处理无白色规则。
此时,输入:
txt = "<this should be removed> hello < world > </this should also be removed> this should stay"
返回:
hello this should stay
而我希望它返回:
hello < world > this should stay
有什么建议吗?提前感谢。
4条答案
按热度按时间vwkv1x7d1#
你可以在开头和结尾字符之前使用否定的lookahed和lookbehing:
bprjcwpo2#
您可以匹配:
说明
<
按字面匹配[^<>\s]
匹配除<
>
以外的单个字符或空白字符(?:
非捕获组[^<>]*
匹配0+除<
或>
以外的字符[^<>\s]
匹配除<
>
以外的单个字符或空白字符)?
关闭非捕获组并将其设为可选>
按字面匹配在替换中使用空字符串。
请参见regex demo。
输出
如果你想要空的
<>
,那么你可以使用in the replacement。a8jjtwal3#
您可以将以下正则表达式的匹配项转换为空字符串。
Demo
此表达式具有以下元素。
vohkndzv4#
也许是这样的:
/<\S[^>]*>/g
: