我希望匹配文本的结尾,为此我必须匹配所有字符和换行符。
但我必须排除下一次捕获的开始!
我想要的是划分下一个模式开始的模式的结尾。
我试图替换
[^-]
类似
(?!-{2}\\*{3})
它不起作用!
所以我想要捕捉数字,我想捕捉整个段落(一些文字)( - *** x ***)
答案 0 :(得分:2)
使用此正则表达式似乎有效:
--\*{3}([\d]*)\*{3}(((?!-).*\n)*)
第一捕获组:星星内的数字。
第二个捕获组:"标题"
之间的文本第3个捕获组:该段的最后一行。
测试正则表达式的链接: https://regex101.com/r/xJ0gC6/1
答案 1 :(得分:-1)
我找到了我想要的东西! :)
--\*{3}([^!*]*)\*{3}((?:(?!-{2}\*{3})(?:\n|.))*)
我必须将我想要的和我不想要的东西分组。 为此我必须使用'非捕获组'和'负向前瞻':
(?!nowant)(?:want)
然后我必须使用'非捕获组'来聚合匹配:
(?:(?!nowant)(?:want))
之后,我添加量词'*'
(?:(?!nowant)(?:want))*
最后,我添加了一个'捕获组':
((?:(?!nowant)(?:want))*)
所以这是正则表达式:
((?:(?!-{2}\*{3})(?:\n|.))*)
您可以看到完整的正则表达式 here :
https://regex101.com/r/xJ0gC6/2