当量词是模式的一部分时,JavaScript中的RegExp
RegExp in JavaScript, when a quantifier is part of the pattern
我一直在尝试使用一个正则表达式来匹配介于插入符号(小于和大于)之间的任何文本。
所以它看起来像:^<我想要选择的文本>^
我试过这样的方法,但不起作用:^<(.*?)>^
我想这是可能的,对吧?我想我经历如此艰难的原因是因为插入符号充当了一个量词。谢谢你给我的帮助!
更新
只是为了让每个人都知道,他们从不是我工作
/'^<(.*?)>'^/
但是,事实证明,我得到的是html实体,因为我是通过使用.innerHTML属性获得字符串的。换句话说,
> ... >
< ... <
为了解决这个问题,我的regexp实际上看起来是这样的:
'^<(.*?)((.|'n)*)>'^
这包括中间的字符串应该是任何字符或新行。谢谢
您需要转义^
符号,因为它在JavaScript正则表达式中具有特殊含义。
/'^<(.*?)>'^/
在JavaScript正则表达式中,^
表示字符串的开始,除非使用了m
修饰符,在这种情况下,它表示行开始。
这应该有效:
'^<(.*?)>'^
在正则表达式中,如果要使用具有特殊含义的字符(插入符号、括号、管道等),则必须使用反斜杠对其进行转义。例如,('w'b)*'w'.
将选择一个以句点结尾的单词序列。
小心
如果必须将regex模式作为字符串传递,即没有像javascript或perl中那样的regex文本,则可能必须使用双反斜杠,编程语言将其转义为单个反斜杠,然后由regex引擎处理
多种语言中的相同正则表达式:
Python:
import re
myRegex=re.compile(r"'^<(.*?)>'^") # The r before the string prevents backslash escaping
PHP:
$result=preg_match("/''^<(.*?)>''^/",$subject); // Notice the double backslashes here?
JavaScript:
var myRegex=/'^<(.*?)>'^/,
subject="^<blah example>^";
subject.match(myRegex);
如果你告诉我们你用的是什么编程语言,我们就能给你一些完成的代码。
编辑:哇,甚至没有注意到这被标记为javascript。然后,您根本不必担心双反斜杠。
编辑2:'b
表示单词边界。虽然我同意你的是我自己会用的。
相关文章:
- 为什么当我分配给element.style时,我的元素的样式没有改变
- jQuery 数据表 在页面上导航时,在分页表上重置行的数据
- 网格分页栏在重新加载时未更新
- 表中使用分页时的后退按钮
- 打印包含1页以上的表数据时,如何在浏览器打印中添加分页符
- Angularjs在使用分页时无法显示orderBy
- 分页没有'当我点击javascript和php按钮时,它不起作用
- 在部分视图内渲染的WebGrid将引发“;“jQuery未定义”,当尝试执行基于ajax的分页或过滤时
- 当uib分页被包装在另一个指令中时,AngularJS表数据没有更新
- 当作为 CommonJS 模块加载时,Angular 是否全局将自己分配给“window.angular”
- 使用分页时如何从 DataTables.net 获取所有数据行
- 使用 Ajax 分页时缺少元素(Facebook 赞按钮)
- Ajax 和 PHP 重新加载分页时无法弄清楚
- 使用 jsoup 时处理网页中的分页
- 打印时每页上的分页符和表头.打印表 CSS 问题
- 当我在 javascript 中单击分页项时,我如何查看图片
- 代码点火器 - jQuery 数据表 搜索和分页时不会保留复选框中的选中值
- 页面加载时显示完整列表的分页
- 页面加载时的 Ajax 分页
- 如何在单击按钮时切换 jquery 数据表的分页