我一直试图找出以下字符串的正则表达式模式&要求。
this. i s.a.string .but. so is . this
预期结果:
1 - "this. i s"
2 - "a"
3 - "string .but. so is . this"
必须在.
上进行分离,但是,如果>>之前或之后有空白,则它应该是前一个结果的一部分。
我一直尝试对以下内容进行修改(结果)
/[(^?=\.]+|[^?<=\.]+/g
1 - "this"
2 - "."
3 - " i s"
4 - "."
5 - "a"
6 - "."
7 - "string"
/[^?<=\.]+/g OR /[^\.]+/g
1 - "this"
2 - " i s"
3 - "a"
4 - "string"
编辑:更新字符串&amp;预期成绩。基于我在评论/答案中看到的不确定性已被删除。
答案 0 :(得分:0)
您可以尝试这样的事情:
not space
,然后是.
,然后是not space
,并将第一个not space
替换为not space|
|.
拆分以获取您的群组列表
function getGroups(str){
var replaceRegex = /(\S)(?=\.\S)/g;
var g = str.replace(replaceRegex, "$1|").split("|.");
console.log(g)
return g;
}
getGroups("this. i s.a.string");
getGroups("this . i s.a.string");
getGroups("this . i 1.a.string");
getGroups("127.0.0.1");
&#13;
答案 1 :(得分:0)
答案 2 :(得分:0)
使用lookahead
和lookbehind
,拆分正则表达式为:
(?<! )\.(?! )
但JavaScript不支持后面的观点,其中一个技巧是:
var s = "this. i s.a.string .but. so is . this";
s.replace(/([^ ])\.(?! )/g, "$1__special__").split("__special__")
lookahead
并将后面的组捕获替换为特殊分隔符