如何删除分隔符和空格或标点符号之间的文本?

时间:2013-04-05 18:15:46

标签: javascript regex

我有一个包含插入符所示同义词的JavaScript数组。示例如下:

  • I'm baffled^bemused by his decision.
  • "Why are you so mean^nasty?" she wailed^moaned.

我想回来:

  • I'm baffled by his decision.
  • "Why are you so mean?" she wailed.

/\^([^^]*)\./适用于单个标点符号,但我无法使其适用于[.,:;?"' ]。我很感激你的帮助。

3 个答案:

答案 0 :(得分:2)

试试这个:

var str = "Why are you so mean^nasty?";
var regex = /\^\w+/;

var result = str.replace(regex, '');

console.log(result); //"Why are you so mean?"

See it working here

答案 1 :(得分:0)

您希望将String.replace与空字符串一起使用。

你想匹配一个'^'后跟所有非空格字符,直到下一个空格,所以正则表达式将是

\^[^\s]+

编辑:正如评论中所指出的,这不会针对标点符号进行调整。

\^\w+

应该工作,因为\ w匹配所有“单词”字符,即a-z,A-Z,0-9,& _

答案 2 :(得分:0)

您想使用此正则表达式搜索并替换空字符串:

\^([^^]*?)(?=[.,:;?"' ])

您可以在www.debuggex.com上查看要替换的部分以及正则表达式的详细信息。