【发布时间】:2017-08-21 01:38:49
【问题描述】:
对此可能有一个非常简单的答案,可能是因为我熟悉(或可能缺乏)替换方法以及它如何与正则表达式一起使用。
假设我有以下字符串:abcdefHellowxyz
我只想去掉前六个字符和后四个字符,返回Hello,使用正则表达式...是的,我知道可能还有其他方法,但我正在尝试探索这些内容的边界方法能够做到……
无论如何,我已经修改了 http://regex101.com 并得到了以下正则表达式:
/^(.{6}).+(.{4})$/
这似乎很好地传递了字符串,并显示 abcdef 被捕获为第 1 组,wxyz 被捕获为第 2 组。但是当我尝试运行以下命令时:
"abcdefHellowxyz".replace(/^(.{6}).+(.{4})$/,"")
用 "" 替换那些捕获的组,我收到一个空字符串作为我的最终输出......我是否对这种语法做错了什么?如果是这样,如何纠正它,保持我对想要以这种方式使用正则表达式的原始立场......
提前谢谢大家...
【问题讨论】:
-
你想要
"abcdefHellowxyz".replace(/^(.{6})(.+)(.{4})$/,"$2")- 因为这就是替换的工作原理......或"abcdefHellowxyz".replace(/^.{6}(.+).{4}$/,"$1")- 因为你真的不需要捕获丢弃的内容
标签: javascript regex string