我有这些输入:
DFDBDFDFDF21R123
DFDBDFDFDF34R123
我希望匹配这些输入,除了位置9和10,如下所示:
DFDBDFDFxxR123
DFDBDFDFxxR123
所以,要明确:匹配1-8,排除9-10,匹配11-16。
答案 0 :(得分:1)
扩展https://stackoverflow.com/users/557597/sln
的答案({8})..(+)
'''你对正则表达式的理解中缺少的是分组'
(SOME MATCHING SUB-STRING A)(SOME MATCHING SUB-STRING B)
如果你使用这样的正则表达式,你可以做很多很好的事情,包括'拔出'一行的部分,然后重新安排它们。但它也可以帮助你分组'部分'你要搜索的内容。
所以他的
.{8}
匹配'。'这是任何一个字符'然后{8}表示匹配任何单个字符8次。
(.{8})
表示对前8个字符进行分组'使用。
..
表示匹配任意两个字符'
.+
表示'匹配任何字符'
中的一个或多个 (.+)
表示"对任何一个或多个角色中的一个或多个进行分组。供以后使用"
...因此
当你把它们放在一起时,你得到了
(.{8})..(.+)
这意味着'匹配前8个字符(任意8个字符)作为组1'那么'任何两个角色'然后' 1个或多个字符作为组2'
这将允许你(取决于你的正则表达式客户端/等)使用$ 1和$ 2来打印,使用或......无论......组1和/或组2的值。
希望这有帮助。