微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式在字符串的第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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐