Javascript正则表达式获取子字符串,排除模式
Javascript regex to get substring, excluding a pattern?
我还是个初学者:(
我需要得到一个忽略[]
(包括方括号[](内最后一个部分的子字符串,即最后忽略[something inside]
部分。
注意-字符串中可能存在[
的其他单次出现。它们应该出现在结果中。
示例
表单的输入-
1 checked arranged [1678]
所需输出-
1 checked arranged
我试过这个
var item = "1 checked arranged [1678]";
var parsed = item.match(/([a-zA-Z0-9's]+)([('[d+'])]+)$/);
|<-section 1 ->|<-section 2->|
alert(parsed);
我试着指以下内容-
第1节-多次出现单词(包含文字和编号(,后跟空格
第2节-忽略最后的模式[something]。
但我得到了1678],1678,]
,我不确定它会朝哪个方向发展。
感谢
好的,这里是表达式中的问题
([a-zA-Z0-9's]+)([('[d+'])]+)$
问题只出现在的最后一部分
([('[d+'])]+)$
^ ^
here are you creating a character class,
what you don't want because everything inside will be matched literally.
(('[d+'])+)$
^ ^^
here you create a capturing group and repeat this at least once ==> not needed
('[d+'])$
^
here you want to match digits but forgot to escape
这就把我们带到
([a-zA-Z0-9's]+)('['d+'])$
在Regexr上看到它,完整的字符串匹配,捕获组1中的部分1和组2中的部分2。
当你现在用第1组的内容替换整个内容时,你就完成了。
你可以做这个
var s = "1 checked arranged [1678]";
var a = s.indexOf('[');
var b = s.substring(0,a);
alert(b);
http://jsfiddle.net/jasongennaro/ZQe6Y/1/
该s.indexOf('[');
检查第一个[
出现在字符串中的位置。
这个s.substring(0,a);
从开始到第一个[
对字符串进行剪切。
当然,这假设字符串总是采用类似的格式
var item = '1 check arranged [1678]',
matches = item.match(/(.*)(?='['d+'])/));
alert(matches[1]);
我使用的正则表达式使用正向前瞻来排除字符串中不需要的部分。括号内的数字必须是字符串的一部分才能成功匹配,但它不会在结果中返回。
在这里,您可以找到如何删除方括号内的内容。剩下的就交给你了。:(Regex:删除方括号的内容
如果你只想在最后的中去掉[],就试试这个
var parsed = item.replace(/'s*'[[^']]*']$/,"")
var item = "1 checked arranged [1678]";
var parsed = item.replace(/'s'[.*/,"");
alert(parsed);
那项工作符合要求吗?
使用转义括号和非捕获括号:
var item = "1 checked arranged [1678]";
var parsed = item.match(/(['w's]+)(?:'s+'['d+'])$/);
alert(parsed[1]); //"1 checked arranged"
正则表达式的解释:
(['w's]+) //Match alphanumeric characters and spaces
(?: //Start of non-capturing parentheses
's* //Match leading whitespace if present, and remove it
'[ //Bracket literal
'd+ //One or more digits
'] //Bracket literal
) //End of non-capturing parentheses
$ //End of string
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 同位素库错误:未捕获错误无布局模式包装生产线8
- Sencha Touch构建-排除文件
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- D3.js模式不适用于弧形或圆环图
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- 使用 Karma,如何排除与模式匹配的所有文件,但特定子文件夹中的文件除外
- gulp.src 排除与模式匹配的所有文件,除了一个 - 不工作
- 正则表达式,以包括所有特定模式并仅排除一种情况
- 如何按模式查找,但排除条件列表
- 匹配字符串中的一个模式但排除另一个模式的Javascript正则表达式
- 具体的glob模式不匹配后,广泛排除
- Regex测试字符串包含一个特定的模式,并排除特定的符号使用javascript
- 我如何在模式中排除brs
- Javascript正则表达式获取子字符串,排除模式
- 如何在angularjs中深度观察一个对象,排除指定的模式
- 我如何从匹配中排除模式中的任何字符串