假设我们有以下文字。
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和RegEx,是否可以提取文本,使其如下所示。
Title: My Title
Content: My long content paragraph. With multiple sentences.
Short Content: Short content
基本上忽略了()
和[]
括号中的新行和文字?
我试过使用正则表达式,但我无法完全按照我的意愿去做。我也遇到了问题,当我匹配Content:
时,我得到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.*
我正在努力克服这个问题。我的下一步是循环上面匹配的文本,然后删除括号内容。我相信有更好的方法可以做到这一点!
答案 0 :(得分:0)
您可以使用String.replace( /(\(|\)|\[|\])/g , '')
如果你接受一个字符串并对这两个参数使用replace方法,它将返回一个删除了()[]
个字符的字符串。我用\
将它们全部转义,因为它们是正则表达式中的特殊字符。这可能有点过于热心。
同样g
使正则表达式成为全局,因此它将删除所有实例
答案 1 :(得分:0)
如果括号内的文字(例如' abc')已修复且具有特殊含义,您还可以使用:'/(\(some text\)\n|\(some test\)\n|(\[abc\]))|(^$\n)/gm'
。
这样,您可以在要保留的真实文本中使用括号,例如some text (this I want to preserve) and other text
。
请注意多行m
标记。