gpt4 book ai didi

regex - 在grep中使用转义字符

转载 作者:行者123 更新时间:2023-12-04 04:32:44 25 4
gpt4 key购买 nike

我具有以下用于消除空格,制表符和换行符的正则表达式:[^ \n\t]
但是,我想将此扩展为某些其他字符,例如><

我尝试了[^ \n\t<>],该方法目前可以​​正常使用,但是如果<>前面带有\,则我希望表达式不匹配。

我尝试了[^ \n\t[^\\]<[^\\]>],但这没有用。

最佳答案

您的输入中是否可以出现以下任一序列?

\\>
\\\>
\\\\>
\blank
\tab
\newline
...



如果是这样,您打算如何对待他们?

如果没有,那么只要您的正则表达式引擎支持, zero-width look-behind assertions就可以解决问题。在任何支持Perl样式正则表达式(包括Perl,PHP等)的引擎中,都是这种情况:
 (?<!\\)[ \n\t<>]

上面的代码将匹配任何未转义的空格,换行符,制表符或斜括号。更一般地(使用 \s表示任何空格字符,包括 \r):
 (?<!\\)\s

或者,使用互补表示法而不需要零宽度后向断言(但可以说效率较低):
 (?:[^ \n\t<>]|\\[<>])

您还可以使用后者的变体来处理 \\>\\\>\\\\>等情况,以及最多一定数量的前面的反斜杠,例如:
 (?:[^ \n\t<>]|(?:^|[^<>])[\\]{1,3,5,7,9}[<>])

关于regex - 在grep中使用转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/682957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com