RegEx Expression包含换行符和空格的任何多个字符

时间:2014-03-07 23:45:15

标签: javascript regex

我的正则表达式是在文本中找到某些单词,而不是在元素文本中找到单词。

REGEXP

RegExp('\\b([^<(.*?)>(.?+)<\/(.*?)>])(' + wregex.join('|') + ')\\b(?=\\W)

示例

This is some text that should be looked through
though this text <code>Should not be looked at </code> and this text is ok to 
look at

所以我会解释我的正则表达式的方法,我遇到了麻烦

([^<(.*?)>(.?+)<\/(.*?)>])在此< 元素之前,请勿匹配任何以> 元素 </开头的文字。} 元素 >

这是最重要的,所以我尝试了多种方法,不确定这个正则表达式是否可行。我不希望匹配任何以基本html元素标记开头的内容,直到结束标记出现,然后重新开始搜索。

修改 我知道RegEx不应该用来解析 HTML 这是通过 TEXT

查看的

测试示例 HERE

2 个答案:

答案 0 :(得分:0)

为什么在一个正则表达式中粉碎一切?它可以这么简单。请注意,我使用[^]代替.,以匹配换行符。

string.replace(/<[^]+?<\/[^]+?>/, '').match(/what i really want to find/gi)

是的,这很容易破坏,正如任何正则表达式解决方案一样。

答案 1 :(得分:0)

假设您正在搜索的文本正确形成(如同,没有标记不匹配),则以下正则表达式应该有效:

^([^<]*<([^>]*)>[^<]*</\2>)*[^<]Your Text

通过在到达文本之前匹配所有打开和关闭的集,可以确保您的文本位于打开和关闭的标记集之外。

它不适用于嵌套标签。正则表达式无法解析任意嵌套标签。

但请记住,you should not parse html with regex