Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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,假设我们有如下文本 Title: (some text) My Title [abc] Content: (some test) My long content paragraph. With multiple sentences. [abc] Short Content: (some text) Short content [abc] 使用Javascript和正则表达式,可以提取文本,如下所示 Title: My Title Content: My long content parag

假设我们有如下文本

Title: (some text)
My Title [abc]

Content: (some test)
My long content paragraph. With multiple sentences. [abc]

Short Content: (some text)
Short content [abc]
使用Javascript和正则表达式,可以提取文本,如下所示

Title: My Title
Content: My long content paragraph. With multiple sentences.
Short Content: Short content
基本上忽略
()
[]
括号中的新行和文本

我尝试过使用正则表达式,但我不能让它完全按照我的意愿运行。我还遇到了这样一个问题:当我匹配
内容时:
我得到了两个
内容的匹配:
短内容:
,但是我只想匹配精确匹配的事件

编辑:

我对RegEx不熟悉。到目前为止提取的标题,如标题:,内容:,等等我都有

/[A-Za-z]+:|[A-Za-z]+ [A-Za-z]+:|[A-Za-z]+ [A-Za-z]+ [A-Za-z]+:|[A-Za-z]+ [A-Za-z]+ [0-9]+:/g
然后我循环使用这个

[TITLENAME]:.*\n.*

我正在努力克服这一点。我的下一步是循环浏览上面匹配的文本,然后删除括号中的内容。我相信有更好的方法可以做到这一点

您可以使用
String.replace(/(\(\)\[\)/g',)

如果您获取一个字符串并使用带有这两个参数的replace方法,它将返回一个删除了
()[]
字符的字符串。我用
\
将它们全部转义,因为它们是正则表达式中的特殊字符。这可能有点过于热情了


另外,
g
使正则表达式成为全局表达式,因此如果括号内的文本(例如“abc”)是固定的,并且具有特殊含义,则它将删除所有实例:
'/(一些文本\)\n(一些测试\)\n(一些测试\[abc\]))(124n)(^$\n)/gm'
。 这样,您就可以在要保留的真实文本中使用括号,例如,
某些文本(我要保留的)和其他文本

请注意多行
m
标志


能否附上您尝试使用的正则表达式?添加到描述中可能重复的事实上我误解了您的问题。应该可以使用string.replace和另一个正则表达式通过
.replace(/(\([^]*\)\124;\[^\]\])/g',
来实现您想要的结果,因此这将删除()或[]中的所有内容以及括号,并用空格替换它们,最后是
.replace(/(\([^]*\)\124;\[\[\]]*\])\ n?/g,“”)
将有望在方括号内工作,与我以前的版本不同,并将删除括号内文本后的新行字符。如果这是正确的想法,请告诉我是否出现任何问题。我会在以后纠正他们的谢谢,现在就调查一下!