Regex 记事本++;正则表达式问题-删除行中的数字替换为HTML

Regex 记事本++;正则表达式问题-删除行中的数字替换为HTML,regex,notepad++,Regex,Notepad++,我是一个regex新手,所以这已经是很多尝试和错误,但出于某种原因,我只能让它有时工作,我不知道为什么。让我规划一下我在做什么。我有一个如下所示的文本文件: 1.Some Text Here A paragraph of words here. 2.Some More Text Here A paragraph of words here. 我使用此代码查找开头带有数字的行: ^[0-9]+.([^.]*)$ 然后我将其替换为: <h2>$1</h2>\r\

我是一个regex新手,所以这已经是很多尝试和错误,但出于某种原因,我只能让它有时工作,我不知道为什么。让我规划一下我在做什么。我有一个如下所示的文本文件:

1.Some Text Here  
A paragraph of words here.

2.Some More Text Here  
A paragraph of words here.
我使用此代码查找开头带有数字的行:

^[0-9]+.([^.]*)$
然后我将其替换为:

<h2>$1</h2>\r\r
$1\r\r
我遇到的问题是,它通常会抓住以数字开头的行,但出于某种原因,它会抓住以数字和下面的段落开头的行。因此,与其把
放在行的末尾,不如把它放在下面一段的末尾


我显示了所有的符号,看看它是否与回车/换行有关,但每一行看起来都是一样的。这一段在它自己的一行,我在每一行的末尾都看到了CRLF。

使用
\2
而不是
$2
,选中“环绕”
在notepad++5.9.3(UNICODE)上测试表达式
[^.]
(即不是文字点)匹配新行

不匹配捕获中的换行符:

^[0-9]+\.([^.\r\n]*)

请注意,我还对数字后面的点进行了转义,使其与文字点匹配(裸点与任何字符匹配)。

不确定您使用的是哪一版本的记事本++,但您的正则表达式版本对于您拥有的示例来说效果良好。。。我使用6.7.9.2

我可以复制以下文本。请注意,第1行的段落不以句点结尾

1.Some Text Here[CR][LF]
A paragraph of words here[CR][LF]

2.Some Text Here[CR][LF]
A paragraph of words here.[CR][LF]

您的正则表达式匹配以一组数字开头而不以句点结尾的任意数量的行。它可以包括多行。我建议使用以下正则表达式:
^[0-9]+\([^\r\n]*)\r\n

请提供一些示例输入,其中正则表达式的行为不符合预期。
[^.]*
告诉引擎匹配所有内容,直到找到字符串(文件?)的下一个点或结尾。因此,它与示例文本匹配也就不足为奇了。基本上,您需要
^\d+\..*
,它只匹配行的其余部分。