Regex 获取正则表达式匹配的前n个字符
我想从这个正则表达式中获取匹配的第一个Regex 获取正则表达式匹配的前n个字符,regex,notepad++,Regex,Notepad++,我想从这个正则表达式中获取匹配的第一个n字符: (\d+\s*) 基本上我想用空格填充右键。因此,在这句话中: 12345␢␢␢␢␢␢␢␢123␢␢␢␢␢␢␢ 123␢␢␢␢␢␢␢␢␢12345␢␢␢␢␢␢ 最后,我想说: 12345␢␢␢␢␢123␢␢␢␢␢␢␢ 123␢␢␢␢␢␢␢12345␢␢␢␢␢ 一条线上始终有两个匹配项,且线的长度不变。多次通过 根据关于问题及其结构的额外信息,我建议采取以下步骤: 在第二个图案之前,将每一行一分为二 从每一行抓取所需的部分 重新组合行,使匹配项
n
字符:
(\d+\s*)
基本上我想用空格填充右键。因此,在这句话中:
12345␢␢␢␢␢␢␢␢123␢␢␢␢␢␢␢
123␢␢␢␢␢␢␢␢␢12345␢␢␢␢␢␢
最后,我想说:
12345␢␢␢␢␢123␢␢␢␢␢␢␢
123␢␢␢␢␢␢␢12345␢␢␢␢␢
一条线上始终有两个匹配项,且线的长度不变。多次通过
根据关于问题及其结构的额外信息,我建议采取以下步骤:
^(\d*\s*)(\d*\s*)$
替换为$1\r\n$2
。如果您不在windows上,只需删除\r
,我对此表示怀疑。您也许应该考虑在一行末尾添加一个宏。这应该是文档其余部分中未包含的内容(例如
)。$1
表示替换第一个捕获的组(括号内的内容)。因此,将其替换为$1\r\n$2
(^.{n})。*(#?)
并替换为$1$2
。这将捕获第一个n
符号,并在找到宏时插入宏\r\n
。请将其删除或替换为\0
- 您必须先过滤匹配
的行(^\d*\s*)
- 如果需要另一个宏,请在答案上方的
子字段中添加出现的内容。它不应该包含在文件的其余部分,至少不应该包含在一行的末尾#
- 这个答案使用了反向引用,这应该是正确的
^(\d[\d\s]{n-1})[^\d]*(\d[\d\s]{n-1}).*$
匹配这些行,如果提取组1和组2,这将从文件中筛选所需的输出。只需将其替换为$1$2
替换:
(\d[\d\s]{n-1})\s*
与:
这将替换一个数字后接
n-1
数字或空白字符,再接任意数量的空白字符后接匹配内容的第一个n
字符(因此每行应获得2个匹配)。使用{n}
再次匹配?不确定记事本(从未使用过),但在中,您可以简单地使用grep-o.\{n\}
再次匹配,并获得所需的结果。您想用正则表达式表达什么?为什么像这样的东西还不够?@bro很好。它将适用于第一列。第二个呢?检查更新的问题,您想在一次搜索中执行此操作,并在记事本++中替换?只需根据您的标签进行询问。@nikh不一定一次通过即可
$1