正则表达式在字符串的第n个字符处或之前查找空格

前端之家收集整理的这篇文章主要介绍了正则表达式在字符串的第n个字符处或之前查找空格前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在字符串的第n个字符处或之前找到空格字符.

例如,假设字符串中的n为20:

Find one space in the right place
^         ^       ^ ^
0         10      M 20

h位于第20位,在这种情况下,我需要找到第20个位置之前的第一个空格,第18个位置中的“the”之前的第一个空格,就在M之上.

我可以使用积极的lookbehinds找到第n个角色

(?<=.{80}).

但后来我需要回去,直到找到第一个太空人物并且我不知道如何.

我正在使用不支持可变长度lookbehinds的记事本,如果可能的话我想要一个允许我在记事本中使用正则表达式的答案.谢谢.

解决方法

你可以使用这个正则表达式(内部但不包括引号):

"^.{1,19} "

注意最后的空格.

我用Notepad 6.1.5(发布时的最新版本)对此进行了测试.根据feature list,正则表达式与PCRE兼容(后视工作,但仅限固定宽度).上面的正则表达式不适用于我当前的旧版本(Notepad 5.9).

由于您需要用其他内容替换空格,您可能希望使用捕获组来保留文本并仅替换空格(内部但不包括引号):

"^(.{1,19}) " (Find)
"\1replace_space" (Replace)

注意:正则表达式将在第20个字符之前或第20个字符处搜索空格.如果您希望空间严格位于第20个字符之前,请将19更改为18.

猜你在找的正则表达式相关文章