Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式。查找包含单词的段落_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式。查找包含单词的段落

Javascript 正则表达式。查找包含单词的段落,javascript,regex,Javascript,Regex,在这样的文本中: 1 bla bla bla bla bla bla bla2 bla bla bla bla bla bla bla文本bla3 bla bla bla bla bla bla bla bla4 bla bla bla bla bla bla bla bla bla bla bla bla文本bla 我必须找到包含字符串“TEXT”的段落(在p标记之间)。 I*?(文本)。*? 和我(?!)*(文本)。*? 但是它并不能解决问题。因为它是一个字符串,(由@Rajesh说),所以

在这样的文本中:

1 bla bla bla bla bla bla bla

2 bla bla bla bla bla bla bla文本bla

3 bla bla bla bla bla bla bla bla

4 bla bla bla bla bla bla bla bla bla bla bla bla文本bla

我必须找到包含字符串“TEXT”的段落(在
p
标记之间)。
I
*?(文本)。*?

和我
(?!)*(文本)。*?

但是它并不能解决问题。

因为它是一个字符串,(由@Rajesh说),所以只需创建一个
div
元素并显示它

使用
querySelectorAll
获取所有
p
标记,然后使用
forEach
函数

检查
innerHTML
中的
/TEXT/
,如果找到,将其推入数组

在下面的程序中,数组
a
包含2个匹配的标记

var str=“1布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉;
var div=document.createElement(“div”);
div.innerHTML=str;
var a=[];
forEach(x=>{if(/TEXT/.test(x.innerHTML))a.push(x);});

控制台日志(a)当我在sublime文本的搜索栏中激活正则表达式时,您编写的第一个代码对我很有用

<p>.*?(TEXT).*?<\/p> 
*?(文本)。*?
您只需要添加开始和结束分隔符,如(…)或{…}或/../或[…],因此请按如下方式尝试:

/<p>.*?(TEXT).*?<\/p>/ 
/*?(文本)。*?/
我认为没有分隔符,它只是一种模式,有了它们,它就是javascript中的正则表达式。。。 在其后面添加“i”以进行不区分大小写的搜索

/<p>.*?(TEXT).*?<\/p>/i
/*?(文本)。*?/i

您可以尝试以下方法:

/<p>.*?(TEXT).*?<\/p>/ 
  • 创建正则表达式以获取所有组
  • 在这些正则表达式上循环以检查必要的搜索键并过滤掉匹配项
var str=“1布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉;
var groupRegex=/(?:^)(.*?(:$)/g;
var searchRegex=/text/i
变量组=str.match(groupRegex);
var result=groups.filter(函数{return searchRegex.test})
console.log(结果)
((?!))*(TEXT)
以确保“TEXT”在一个

var regex=/((?!)*?(文本)。*?/g;
var text='1 bla bla bla bla bla bla

2 bla bla bla bla bla text bla

3 bla bla bla bla bla bla bla bla

4 bla bla bla bla bla bla text bla


console.log(text.match(regex))否。有人也投了我的票@拉杰什,看看这个。现在可以了吗?我已经删除了我的投票,因为它产生了正确的输出,但OP正在寻找regex.ah。是你吗。谢谢我感谢投反对票的评论。但我真的很讨厌那些不加评论就投反对票的人。你的评论让我改进了我的答案。我想这是OP的问题,我必须找到包含字符串“TEXT”的段落(在p标签之间)@拉杰希普。如前所述,它产生了正确的输出,也很乐意以任何方式提供帮助。:-)伟大的非常感谢。这也将匹配给定文本中的第一段(第一段不包含“文本”)