正则表达式内部内容
RegEx inner content
使用JavaScript,我希望在不包含这些字符串的情况下精确定位其他两个字符串中的文本。例如:
输入:ONE example TWO
正则表达式:(?=ONE).+(?=TWO)
比赛: ONE example
我要:example
我真的很惊讶问号(应该只在查询中包含该字符串而不是结果)适用于字符串的末尾,但不适用于开头。
啊哈!我想通了。
例如,下面介绍如何获取括号内不带括号
的文本(?<='().+(?='))
这里有一个很好的参考:http://www.regular-expressions.info/lookaround.html
我的困惑部分是javascript的错。它显然不支持原生的"回溯"。不过,我发现了这种解决方法:http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript
(我使用 Python 的 re
模块来展示示例 - 具体如何做到这一点取决于您的正则表达式实现 [例如,有些没有组 - 或反向引用])
对第一个断言使用向后断言
,而不是前向断言。
>>> re.search(r"(?<=ONE).+(?=TWO)", "ONE x a b TWO").group()
' x a b '
问题是零宽度断言(?=ONE)
与文本"ONE"匹配,但不"消费"它 - 即它只是检查它是否存在,但保持字符串不变。然后.+
开始阅读文本,并确实使用它。
后的断言不会向前看,而是向后看,所以.+
直到它后面的东西都是"ONE"时才被运行。
最好不要打扰这些,而是使用组。考虑:
>>> re.search(r"ONE(.+)TWO", "ONE x a b TWO").group(1)
' x a b '
相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- javascript正则表达式,用于编辑元素内部的css样式属性
- 用X'替换内部信用卡号的正则表达式;s
- 什么正则表达式模式将从包含的外部HTML文本中提取内部HTML
- 正则表达式内部内容
- 正则表达式用于匹配段落中的单词,但排除内部 HTML 标记
- Kohana - 使用“.exec”正则表达式发布javascript代码返回内部错误
- 为JavaScript正则表达式找到一个内部模式倍数的优雅的单个正则表达式
- 在Javascript中使用正则表达式查找内部匹配
- 使用正则表达式从整个Html中删除空白,但在pre内部
- 如何使用正则表达式从字符串中删除带有 HTML 标记的 HTML 标记的内部文本
- Javascript正则表达式防止标签内部匹配
- 删除锚标记并使用正则表达式以数组形式获取内部文本
- 如何修改字符串内部字符,Javascript正则表达式
- 与内部文本匹配的正则表达式:-
- javascript内部函数的正则表达式