在JavaScript RegEx中匹配不可见的字符

时间:2013-04-25 02:58:45

标签: javascript regex

我有一些包含不可见字符的字符串,但它们在某些可预测的位置。通常我要提取的文本环绕,然后在第二次出现后我想保留文本的其余部分。

我似乎无法弄清楚如何关闭不可见的字符,将它们排除在我的结果之外。为了匹配隐形,我一直在使用这个正则表达式:/\xA0\x00-\x09\x0B\x0C\x0E-\x1F\x7F/这似乎有效。

以下是一个示例:[invisibles]Keep as match 1[invisibles]Keep as match 2

这是我迄今为止一直没有成功使用的内容:

/([\xA0\x00-\x09\x0B\x0C\x0E-\x1F\x7F]+)(.+)([\xA0\x00-\x09\x0B\x0C\x0E-\x1F\x7F]+)/(.+)

我已经有了捕获组,但由于我不得不以这种方式使用正则表达式,所以我已经有一段时间了,所以我知道我错过了一些重要的东西。我希望只是让隐藏的匹配非捕获组,但似乎JavaScript不支持这一点。

1 个答案:

答案 0 :(得分:1)

这样的东西看起来像你想要的。第二个正则表达式你几乎可以工作,但/完全是错误的地方。也许你没有正确地读出小组数据。

var s = "\x0EKeep as match 1\x0EKeep as match 2";
var r = /[\xA0\x00-\x09\x0B\x0C\x0E-\x1F\x7F]+(.+)[\xA0\x00-\x09\x0B\x0C\x0E-\x1F\x7F]+(.+)/;

var match = s.match(r);

var part1 = match[1];
var part2 = match[2];