Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 删除多行字符串Scala中的特殊字符_Regex_String_Scala - Fatal编程技术网

Regex 删除多行字符串Scala中的特殊字符

Regex 删除多行字符串Scala中的特殊字符,regex,string,scala,Regex,String,Scala,有没有办法从Scala中的多行字符串中删除特殊字符(\n、\b、\t、\f、\r) 对于普通字符串 val someText = "some\nText\t" someText.filter(_ >= ' ') // returns "someText" 如何在多行字符串中实现相同的效果 val multLineStr = """some\nText\t""" someText.filter(_ >= ' ') // returns "some\nText\

有没有办法从Scala中的多行字符串中删除特殊字符(
\n、\b、\t、\f、\r

对于普通字符串

val someText = "some\nText\t"
someText.filter(_ >= ' ')       // returns "someText"
如何在多行字符串中实现相同的效果

val multLineStr = """some\nText\t"""
someText.filter(_ >= ' ')       // returns "some\nText\t"
val multLineStr = s"""some\nText\t"""
println(multLineStr.toList)
println(multLineStr.filter(_ >= ' '))
我尝试使用正则表达式,但无法从字符串中删除字符

val regex = new Regex("\\s")
regex.replaceAllIn(multLineStr, "")   // returns "some\nText\t"

似乎需要向该字符串添加插值:

val multLineStr = """some\nText\t"""
println(multLineStr.toList)
println(multLineStr.filter(_ >= ' '))
将打印:

List(s, o, m, e, \, n, T, e, x, t, \, t)
some\nText\t
与多行字符串之前的
s
插值相同

val multLineStr = """some\nText\t"""
someText.filter(_ >= ' ')       // returns "some\nText\t"
val multLineStr = s"""some\nText\t"""
println(multLineStr.toList)
println(multLineStr.filter(_ >= ' '))
将给出您想要的结果:

List(s, o, m, e, 
, T, e, x, t,   )
someText

作为边节点,存在一种

  /** Expands standard Scala escape sequences in a string.
   *  Escape sequences are:
   *   control: `\b`, `\t`, `\n`, `\f`, `\r`
   *   escape:  `\\`, `\"`, `\'`
   *
   *  @param  str  A string that may contain escape sequences
   *  @return The string with all escape sequences expanded.
   */
  def processEscapes(str: String): String
因此


“\n”
是两个字符的组合,而不是换行符。使用
val regex=“”\\[tn]”。r
此功能:
println(“>some\nText\t三重引号的字符串是“多行”这意味着他们理解呈现的新行。换句话说,对于每个呈现的新行,都会自动插入一个
\n
字符。特殊字符不再被视为特殊字符。@diginoise,我想替换“特殊字符”在三重引号字符串中,虽然知道替换字符串中特殊字符的另一种方法Thankso很好,但您不是在删除任何内容,而是在字符串文本中定义?