Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
Javascript 编译HTML后替换回车(?)_Javascript_Regex - Fatal编程技术网

Javascript 编译HTML后替换回车(?)

Javascript 编译HTML后替换回车(?),javascript,regex,Javascript,Regex,解析HTML后,我得到以下对象: 我想脱光所有的衣服”↵" 除了一个。我怎么能这样做?我试过这样做: weirdString.replace(/(\r\n|\n|\r)/gm, "")); 但是,这将取代所有的“↵“但正如我已经提到的,我想替换除第一个以外的所有…您可以捕获它并使用反向引用进行恢复: weirdString.replace(/^([^\S\r\n]*(?:\r\n?|\n))|(?:\r\n?|\n)/g, "$1")); 这里不需要使用m修饰符 详细信息: ^-字符串的

解析HTML后,我得到以下对象:

我想脱光所有的衣服”↵" 除了一个。我怎么能这样做?我试过这样做:

weirdString.replace(/(\r\n|\n|\r)/gm, ""));

但是,这将取代所有的“↵“但正如我已经提到的,我想替换除第一个以外的所有…

您可以捕获它并使用反向引用进行恢复:

weirdString.replace(/^([^\S\r\n]*(?:\r\n?|\n))|(?:\r\n?|\n)/g, "$1"));
这里不需要使用
m
修饰符

详细信息

  • ^
    -字符串的开头
  • ([^\S\r\n]*(?:\r\n?|\n))
    -捕获组1:
    • [^\S\r\n]*
      -除CR和LF之外的任何0+空格
    • (?:\r\n?|\n)
      -任何样式换行符
  • |
    -或
  • (?:\r\n?|\n)
    -任何样式换行符
使用
$1
,只有捕获到组1中的内容才会放回替换结果中

var weirdString=“\r\n\r\n\r一些文本”;

console.log(weirdString.replace(/^([^\S\r\n]*(?:\r\n?|\n))|(?:\r\n?|\n)/g,“$1”))
有点棘手,但是为什么不先用其他东西替换第一个回车符呢?例如:%@%或其他东西,你在文本中没有使用的东西…然后替换所有其他回车符,最后将%@%标记返回到carrige return…

精确匹配的regexp必须处理一些你没有的东西t说明:

  • 第一种是可以在两个这样的行尾之间的空白。它应该被认为是干涉的情况
  • 第二,在
    \n
    前面的
    \r
    应该被认为是可选的,因为它出现在来自internet的套接字连接的文本中(大多数协议强制发送
    \r\n
    ,但可以是可选的)
  • 此类型的两个或多个换行符的序列应折叠为一个
    \n
    (或一个
    \r\n
    ,如您喜欢)
如果您进行模式匹配并使用启用的多个标志进行替换,您将使用此模式获得所需的效果:

([ \t]*\r*\n)+

如下图所示。我用一个匹配非空白符号的
[@S.Serp:
\S
替换了换行符。
[^\S]
=
\S
,它匹配一个空白符号。
[^\S\r\n]
匹配除非空白、CR和LF之外的任何符号。我接受这个答案,因为它清楚地解决了问题。但是(正如我在介绍文章中所评论的):我希望的结果如下:↵ 1.↵ 因此,如果有多个↵ 在一行中(以空格(?)分隔),删除所有↵ 但是第一个+它的空白我可以问这个作为一个新问题+如果需要的话链接到这个。等等,让我理解这个评论看起来像你想要的。请让我知道,这样我可以调整答案。现在它是这样的:11:↵ 1.这是一个内心世界2.知识本身,但我希望它是这样的:11:↵ 1.↵ 这是我的内心世界。。。。↵ 2.↵ Lorem ipsum,因此仅移除↵ + 如果存在多个空格,则为空白↵ 我的问题是:我希望的结果是:↵ 1.↵ 因此,如果有多个↵ 在一行中(以空格(?)分隔),删除所有↵ 但是第一个+它的空白