我有一些包含不可见字符的字符串,但它们在某些可预测的位置。通常我要提取的文本环绕,然后在第二次出现后我想保留文本的其余部分。
我似乎无法弄清楚如何关闭不可见的字符,和将它们排除在我的结果之外。为了匹配隐形,我一直在使用这个正则表达式:/\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不支持这一点。
答案 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];