Scala 转义换行符和制表符
Scala escaping newline and tab characters
我正在尝试使用以下代码去除 url 中的制表符和换行符,但我的输出中仍然有换行符和制表符。需要帮助解决这个问题。
val referrerUrl = Option(event.getPage.getReferrerUrl).getOrElse(blank).replaceAll("\p{C}|\s+|\r$|\\t|\\n|\\r", "")
url可以是
http://www.bing.com/search?q=\tEnergy Source\tFuel (Coal)/Uranium Needed (tons)\tCO2 Emissions \r\n(tons)\tSulfur Dioxide and Other Emissions (tons)\tRadioactivity mSv (millisievert)\tSolid Waste (tons)\tAccidents\r\nQuarter 1\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\nQuarter 2\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\nQuarter 3\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\nQuarter 4\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\n
您的示例代码非常适合我:
scala> val s = "http://www.bing.com/search?q=\tEnergy Source\tFuel (Coal)/Uranium Needed (tons)\tCO2 Emissions \r\n(tons)\tSulfur Dioxide and Other Emissions (tons)\tRadioactivity mSv (millisievert)\tSolid Waste (tons)\tAccidents\r\nQuarter 1\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\nQuarter 2\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\nQuarter 3\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\nQuarter 4\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\n"
scala> s.replaceAll("\p{C}|\s+|\r$|\\t|\\n|\\r", "")
res0: String = http://www.bing.com/search?q=EnergySourceFuel(Coal)/UraniumNeeded(tons)CO2Emissions(tons)SulfurDioxideandOtherEmissions(tons)RadioactivitymSv(millisievert)SolidWaste(tons)AccidentsQuarter1CoalNuclearQuarter2CoalNuclearQuarter3CoalNuclearQuarter4CoalNuclear
三引号有助于清楚起见,因为不处理转义:
scala> s.replaceAll("""\t""", "")
res5: String =
"http://www.bing.com/search?q=Energy SourceFuel (Coal)/Uranium Needed (tons)CO2 Emissions
比较:
scala> s.replaceAll("\\t", "")
res3: String =
"http://www.bing.com/search?q= Energy Source Fuel (Coal)/Uranium Needed (tons) CO2 Emissions
我没有计算反斜杠。
我正在尝试使用以下代码去除 url 中的制表符和换行符,但我的输出中仍然有换行符和制表符。需要帮助解决这个问题。
val referrerUrl = Option(event.getPage.getReferrerUrl).getOrElse(blank).replaceAll("\p{C}|\s+|\r$|\\t|\\n|\\r", "")
url可以是
http://www.bing.com/search?q=\tEnergy Source\tFuel (Coal)/Uranium Needed (tons)\tCO2 Emissions \r\n(tons)\tSulfur Dioxide and Other Emissions (tons)\tRadioactivity mSv (millisievert)\tSolid Waste (tons)\tAccidents\r\nQuarter 1\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\nQuarter 2\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\nQuarter 3\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\nQuarter 4\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\n
您的示例代码非常适合我:
scala> val s = "http://www.bing.com/search?q=\tEnergy Source\tFuel (Coal)/Uranium Needed (tons)\tCO2 Emissions \r\n(tons)\tSulfur Dioxide and Other Emissions (tons)\tRadioactivity mSv (millisievert)\tSolid Waste (tons)\tAccidents\r\nQuarter 1\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\nQuarter 2\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\nQuarter 3\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\nQuarter 4\tCoal\t\t\t\t\t\t\r\n\tNuclear\t\t\t\t\t\t\r\n"
scala> s.replaceAll("\p{C}|\s+|\r$|\\t|\\n|\\r", "")
res0: String = http://www.bing.com/search?q=EnergySourceFuel(Coal)/UraniumNeeded(tons)CO2Emissions(tons)SulfurDioxideandOtherEmissions(tons)RadioactivitymSv(millisievert)SolidWaste(tons)AccidentsQuarter1CoalNuclearQuarter2CoalNuclearQuarter3CoalNuclearQuarter4CoalNuclear
三引号有助于清楚起见,因为不处理转义:
scala> s.replaceAll("""\t""", "")
res5: String =
"http://www.bing.com/search?q=Energy SourceFuel (Coal)/Uranium Needed (tons)CO2 Emissions
比较:
scala> s.replaceAll("\\t", "")
res3: String =
"http://www.bing.com/search?q= Energy Source Fuel (Coal)/Uranium Needed (tons) CO2 Emissions
我没有计算反斜杠。