使用jquery或regex,带点但不带点的拆分字符串位于单引号中
spilt string with dot but dot not lies in single quote using jquery or regex
我需要在点上拆分这样的字符串。但我不想拆分字符串('或")中的点。我不是在分析文件,只是一个没有换行符的简单字符串。
part 1;"12:'xyz@gmail.com'.8:'23'.25:'hello'.6:6"
结果应该是:
part 1 "12:'xyz@gmail.com'"
part 2 "8:'23'"
part 3 "25:'hello'"
part 4 "6:6"
我想这可以用正则表达式来完成,但如果不能;我对另一种方法持开放态度。
编辑
我有
str = "12:'xyz@gmail.com'.8:'23'.25:'hello'.6:6"
我希望得到
str[0]=12:xyz@gmail.com str[1]=8:'23'
str[2]=25:'hello'
str[3]=6:6
但每当我拆分它时,它显示为:
str[0]=12:xyz@gmail
str[1]=com
str[2]=8:'23'
str[3]=25:'hello'
str[4]=6:6
您可以使用以下正则表达式匹配:
/[^.']+(?:'[^']*')?/g
查看regex演示
详细信息:
[^.']+
-除'
和.
之外的1个或多个字符(?:'[^']*')?
-可选的'...'
字符串('
后面跟0+个字符,而不是'
后面跟'
根据内容的不同,您可以使用增强版本:
/[^.']*(?:'[^']*'[^.']*)*/g
查看另一个演示
演示1(简化):
var re = /[^.']+(?:'[^']*')?/g;
var str = '12:''xyz@gmail.com''.8:''23''.25:''hello''.6:6';
var m = str.match(re);
document.body.innerHTML = "<pre>" + JSON.stringify(m, 0, 4) + "</pre>";
演示2(如果内容更复杂):
var re = /[^.']*(?:'[^']*'[^.']*)*/g;
var str = '''1.2'' 12:''xyz@gmail.com''.8:''23''.25:''hello''.6:6';
var res = [];
while ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
if (m[0]) { res.push(m[0]);}
}
document.body.innerHTML = "<pre>" + JSON.stringify(res, 0, 4) + "</pre>";
我不确定分割,但你可以像这样使用replace
(容易出现灾难性的回溯)
((?:(?:'[^']+')*[^.']*)*)(?:'.|$)
Regex演示
JS代码
var re = /((?:(?:'[^']+')*[^.']*)*)(?:'.|$)/g;
var str = '''1.2'':''xyz@mail.com''.8:''2.3''.25:''he.llo''.6:6''1.2'''
document.writeln("<pre>" + str.replace(re, "$1'n") + "</pre>");
试试这个正则表达式:
new RegExp('('.[^':]+':''?[^'.]+''?)','g');
相关文章:
- 通过跳过拆分字符在 javascript 中拆分字符串
- jQuery字符串使用split()方法在空格后拆分字符串
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 如何在JavaScript中按大小写拆分字符串
- 根据上次出现的、和_拆分字符串
- 拆分字符串数组(JavaScript)后未定义
- 在空行上拆分字符串
- 使用Regex拆分字符串,保留分隔符
- 使用jquery或regex,带点但不带点的拆分字符串位于单引号中
- Nashorn和Rhino:使用空白regexp拆分字符串
- Javascript:不使用.split()方法拆分字符串
- 如何使用正则表达式在javascript中拆分字符串
- Javascript在第一个空格上拆分字符串
- 首次出现时拆分字符串
- 如何使用正则表达式(.match())拆分字符串
- 使用正则表达式拆分字符串
- Javascript:拆分字符串,但仅使用 1 个结果
- Angularjs-拆分字符串问题
- angularjs在拆分字符串时解析语法错误
- 基于javascript中的AND OR逻辑拆分字符串