【问题标题】:Regex to add a new line break after each bracket正则表达式在每个括号后添加一个新的换行符
【发布时间】:2016-10-18 07:08:12
【问题描述】:

我尝试使用正则表达式替换 (/\([(]\)/g,'\1\n') 但它没有帮助。有什么帮助吗?

【问题讨论】:

  • 这是 JavaScript 吗?
  • 在JS中,你应该使用.replace(/[()]/g,'$&\n')之类的东西(在()之后添加换行符,通过在[...]字符类中添加更多符号可以轻松扩展)。

标签: javascript regex newline


【解决方案1】:

不管是什么语言,圆括号匹配模式要么是\(,要么是[(]。如果需要在替换中使用整个匹配值,则有$&$0 反向引用。

因此,搜索/[(]/g(您可以在字符类中添加更多字符,例如[()\][]...)并替换为"$&\n"(或"$0\n")。

请参阅regex demo

一个 JS 演示:

var regex = /[(]/g;
var str = "before(after and before 1(after1";
var subst = "$&\n";
var result = str.replace(regex, subst);
console.log(result);

【讨论】:

  • 如果您有任何反馈,请随时将 cmets 放在这里。
  • 谢谢解决了。然而只有 "$&\n" 添加了一个新行,而 "$0\n" 代替了括号。
  • 那么,是JS,你用的是IE,对吧?请注意,我必须在 regex101 中使用$0,因为由于某种原因,$& 反向引用无法识别为 JS 正则表达式风格。这是一个错误。我在这里添加了一个 sn-p。
  • 是的,它是 JS :)
猜你喜欢
  • 2022-12-03
  • 1970-01-01
  • 1970-01-01
  • 2013-01-10
  • 2017-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多