我需要在字符串的第n个字符处或之前找到空格字符。
示例,假设n为20:在字符串
中 Find one space in the right place
^ ^ ^ ^
0 10 M 20
h 处于第20位,在这种情况下,我需要找到第20个位置之前的第一个空格,在第18个位置之前的单词“the”之前的那个位置,就在中号
我可以使用像
这样的积极外观来找到第n个角色(?<=.{80}).
然后我需要回去,直到找到第一个空格字符,我不知道如何。
我正在使用notepad ++,它不支持可变长度的lookbehinds,如果可能的话,我想要一个允许我在notepad ++中使用正则表达式的答案。感谢。
答案 0 :(得分:6)
您可以使用此正则表达式(内部但不包括引号):
"^.{1,19} "
注意最后的空格。
我用Notepad ++ 6.1.5(发布时的最新版本)对此进行了测试。根据{{3}},正则表达式与PCRE兼容(后视工作,但仅限固定宽度)。上面的正则表达式不适用于我当前的旧版本(Notepad ++ 5.9)。
由于您需要用其他内容替换空格,您可能希望使用捕获组来保留文本并仅替换空格(内部但不包括引号):
"^(.{1,19}) " (Find)
"\1replace_space" (Replace)
注意:正则表达式将搜索20或20之前的空格。如果您希望空格严格位于第20个字符之前,请将19更改为18。
答案 1 :(得分:-1)
对于 n = 20 ,请使用正则表达式(\s)\S*.(?<=^.{20})