【发布时间】:2015-09-17 19:02:26
【问题描述】:
是否有一个正则表达式仅在字符串从奇数或偶数索引开始时才匹配它?我的用例是一个十六进制字符串,我想在其中替换某些“字节”。
现在,当尝试匹配20(空格)时,“7209”中的20 也会匹配,即使它由字节72 和09 组成。在这种情况下,我仅限于 Notepad++ 的正则表达式实现,因此我无法检查匹配索引,例如在 Java 中。
我的示例输入如下所示:
324F8D8A20561205231920
我设置了一个测试页面here,正则表达式应该只匹配20的第一个和最后一个出现,因为中间的那个从一个奇数索引开始。
【问题讨论】:
-
有什么东西可以分隔字符串的开始和结束吗?
-
请检查
20(?=(?:\d{2})+|\D|$)是否适合您。 -
文件的开始和结束,我认为 Notepad++ 允许至少匹配文件的结尾与 \z 不确定开始
-
@stribizhev 您发布的正则表达式匹配所有 20 岁,但遗憾的是那些不应该匹配的(例如 7209)
-
请发布一些输入文本,没有它很难猜出模式会是什么。