Ruby 匹配除换行符以外的所有控制字符\n

Ruby 匹配除换行符以外的所有控制字符\n,ruby,regex,Ruby,Regex,有没有一种方法可以编写一个正则表达式来匹配除换行符“\n””之外的任何正则表达式 我可以编写正则表达式来捕获任何控制字符,如下所示: /\p{Cc}/ 这应该做到: /(?!\n)\p{Cc}/ 负向前看,不应该匹配换行符这应该可以做到: /(?!\n)\p{Cc}/ str = "Q\cA\n\cD%\cH\n" #=> "Q\u0001\n\u0004%\b\n" str.gsub(/[^\p{Cc}]|\n/, '') #=> "\u0001\u0004\

有没有一种方法可以编写一个正则表达式来匹配除换行符“\n””之外的任何正则表达式

我可以编写正则表达式来捕获任何控制字符,如下所示:

/\p{Cc}/
这应该做到:

/(?!\n)\p{Cc}/
负向前看,不应该匹配换行符

这应该可以做到:

/(?!\n)\p{Cc}/
str = "Q\cA\n\cD%\cH\n"       #=> "Q\u0001\n\u0004%\b\n"

str.gsub(/[^\p{Cc}]|\n/, '')  #=> "\u0001\u0004\b"
负向前看,不应匹配换行符

str = "Q\cA\n\cD%\cH\n"       #=> "Q\u0001\n\u0004%\b\n"

str.gsub(/[^\p{Cc}]|\n/, '')  #=> "\u0001\u0004\b"
注意

"\cH" #=> "\b"
注意

"\cH" #=> "\b"

您可以编写
str.gsub(/./){| c | c.match?(r)?c:''},其中
r`是您的正则表达式。这就是您在提取非换行符控制字符(或其他字符)时的想法吗?您可以编写
str.gsub(/./){| c | c.match?(r)?c:'},其中
r`是您的正则表达式。这就是您在提取非换行符控制字符(或者其他东西)时的想法吗?