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,“”)
将有望在方括号内工作,与我以前的版本不同,并将删除括号内文本后的新行字符。如果这是正确的想法,请告诉我是否出现任何问题。我会在以后纠正他们的谢谢,现在就调查一下!