Ruby on rails 正则表达式来选择括号
使用正则表达式模式清理HTML输出并删除任何特殊字符。我的想法是编写一个正则表达式,列出我想要保留的所有字符,并删除所有其他字符,而不是试图解释模式中的所有特殊字符 我目前的模式:Ruby on rails 正则表达式来选择括号,ruby-on-rails,ruby,regex,Ruby On Rails,Ruby,Regex,使用正则表达式模式清理HTML输出并删除任何特殊字符。我的想法是编写一个正则表达式,列出我想要保留的所有字符,并删除所有其他字符,而不是试图解释模式中的所有特殊字符 我目前的模式: /[^0-9A-Za-z,=": ?'`&;>|<!.\-\/]/ /[^0-9A-Za-z,=“:?”`&>| 它工作得很好,只是删除了我想保留的括号()。在添加到我的模式时,我似乎无法正确地转义它们。这样做的最佳方法是什么?/[^0-9A-Za-z,=“:?”`&;>| /[^0-9A-Za
/[^0-9A-Za-z,=": ?'`&;>|<!.\-\/]/
/[^0-9A-Za-z,=“:?”`&>|
它工作得很好,只是删除了我想保留的括号()。在添加到我的模式时,我似乎无法正确地转义它们。这样做的最佳方法是什么?/[^0-9A-Za-z,=“:?”`&;>|
/[^0-9A-Za-z,=": ?'`&;>|<!.\-\/()]/
在范围块“[]”内,应用不同的转义规则。/[^0-9A-Za-z,=“:?”`&>|
在范围块“[]”内,应用不同的转义规则。最好的方法是使用Rails内置的方法。最好的方法是使用Rails内置的方法。str.delete(%q{^a-zA-Z1-9,=:“`&>|
str.delete( %q{^a-zA-Z1-9,=:"`&;>|<!.-/ ()'} )
# or with another delimiter (*):
str.delete( %q*^a-zA-Z1-9,=:"`&;>|<!.-/ ()'* )
String.delete将一个或多个字符串作为参数(并像正则表达式一样用“^”对其求反)。使用%q{String}语法,您不必担心转义。str.delete(%q{^a-zA-Z1-9,=:“`&;”>|
delete将一个或多个字符串作为参数(并用“^”对其求反,就像正则表达式一样)语法您不必担心转义。对此进行升级投票。这是一种经过良好测试的方法。尝试构建您自己的正则表达式在许多情况下都会起作用,但不是全部。例如,有人可以输入:。删除中间的脚本标记将导致呈现另一个脚本标记。升级投票。这是一种经过良好测试的方法。尝试构建您r own regex在许多情况下都可以工作,但不是全部。例如,有人可以输入:。删除中间的脚本标记将导致另一个脚本标记被呈现。尽管转义(
-和)
,/[^0-9A-Za-z,=“:?”`&>,也可以工作(尽管不需要,如您所述)。让我想知道OP是如何转义的…虽然转义了(
-和)
:/[^0-9A-Za-z,=“:?”`&>|,也会起作用(尽管你提到了,这不是必需的)。让我想知道OP是如何转义的…你仍然需要担心转义,对吗?只是不要转义正斜杠。如果他想要{}在他的表达式中,他需要转义,对吗?@YGomez是的。但是你可以自己选择分隔符。更新答案。你仍然需要担心转义,对吗?只是不能转义正斜杠。如果他想要{}在他的表达式中,他需要避开它,对吗?@YGomez是的。但是你可以自己选择分隔符。更新答案。相关问题:相关问题: