有一个像 here 这样的问题询问每一行中第一次出现“1”,但在 EditPad 中它根本不起作用,即使我使用多行搜索面板。< /p>
我打开了正则表达式,突出显示全部。其他功能全部关闭。
我猜 ^[^1\n\r]*(1) 是朝着真正的“第一次出现”迈出的一步,但它还没有。
例如,我有号码 5215681571
我只想突出显示该行中的第一个“1”。表达式 ^[^1\n\r]*(1) 将突出显示 521,这是不可取的。
我也试过 ^(^.*[^1])1 查找包含 1 的每一行并突出显示从开始到最后一个“1”的所有内容。
在 stackoverflow 中,我看到了无数关于如何实现第一次出现的建议,但没有一个在 EditPad 中有效。有什么想法吗?
答案 0 :(得分:0)
在您尝试的模式中,您使用了一个捕获组,前面是一个匹配项。
如果这是 the tool,则正则表达式引擎是 indicated as JGsoft V2
其中 supports 使用 \K
忘记到目前为止匹配的内容。
匹配除 1 或回车符或换行符以外的所有内容:
^[^\r\n1]*\K1
或者匹配除 1 和垂直空格 \v
^[^\v1]*\K1
答案 1 :(得分:0)
除了@第四只鸟的建议之外,EditPad 的 JGSoft 引擎支持无限后视,这让您可以执行此操作(在 EPP Pro 8.2.4 中测试):
(?<=^[^1\r\n]*)1
要捕捉任何奇怪的 unicode 换行符,您还可以使用 [^\p{Zl}]
代替 [^\r\n]
,产生这两个替代版本:
^[^\p{Zl}1]*\K1
或
(?<=^[^1\p{Zl}]*)1