gpt4 book ai didi

regex - 忽略 Npp 正则表达式中的特定字符

转载 作者:行者123 更新时间:2023-12-04 08:03:13 30 4
gpt4 key购买 nike

我正在使用 Notepad++ 风格的正则表达式。这个...

Find: ([^`]{1,23} )
Replace: $0\n
...接受这个输入字符串...

Now is the time for all good men to come to the aid of the party.


...并产生这个输出字符串:

Now is the time for all

good men to come to the

aid of the party.


它将字符串拆分为 24 个或更少的非反引号 (`) 字符的行,并在空格后拆分。仅当输入字符串的最后一个字符也是空格字符时才有效。
这串...

Now is the time for all good men to █come to the aid█ of the party.


... split 不同。

Now is the time for all

good men to █come to

the aid█ of the party.


我正在寻找一种跳过 █ 个字符的方法 - 处理输入字符串,就好像 █ 不存在一样。
[注意:`(反引号)字符被保留用于包含文本格式标签,稍后插入。 █ 个字符将用于表示“此位文本稍后将插入标签”,因此它们 被关闭,但还没有。我在这里使用 █(完整块)来表示 Unicode 7F (del) 字符,因为 7F 无法正确显示。如果绝对必要,我也可以在 AHK 中使用 Perl 风格的正则表达式。]
这些正则表达式发现未能忽略 █:
(([^`]|█?){1,23} )
((([^`])|(█)?){1,23} )
((([^`])|(?:█)){1,23} )
那么,有没有办法做到这一点?

最佳答案

您可以使用以下模式:

(?:[^`█]█*){1,23}[ ]
这匹配除反引号或 full block 之外的任何字符后跟零个或多个完整的块字符,并允许整个事情在 1 到 23 次之间重复。这确保完整的块字符不计入 {1,23}量词。
Demo .
您也可以使用 Unicode 代码点(在我看来它看起来更好):
(?:[^`\x{2588}]\x{2588}*){1,23}[ ]
此外,如果(最后一场比赛的)最后一个字符不必是空格字符,您可以使用:
(?:[^`\x{2588}]\x{2588}*){1,23}(?: |$)

关于regex - 忽略 Npp 正则表达式中的特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66346702/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com