我有以下这些投入:
DFDBDFDFDF21R123
DFDBDFDFDF34R123我想与这些投入相匹配,但第9和10位置除外,如下所示:
DFDBDFDFxxR123
DFDBDFDFxxR123所以,要弄清楚:比赛1-8,不包括9-10,比赛11-16.
发布于 2016-03-01 21:34:26
https://stackoverflow.com/users/557597/sln给出的答案
(.{8})..(.+)
你对Regex的理解所缺少的“东西”是“分组”。
(SOME MATCHING SUB-STRING A)(SOME MATCHING SUB-STRING B)如果你像这样使用正则表达式,你可以做很多好的事情,包括“拉出”线的部分,然后重新排列它们。但它也能帮助你将你想要搜索的“部件”分组。
所以他
.{8}火柴“。”它是“任意单个字符”,然后{8}表示“匹配任何单个字符8次”。
(.{8})意思是‘分组前8个字符’的使用。
..意思是“匹配任意两个字符”
.+ 意思是“匹配”1或更多的“任意字符”
(.+)意思是“将一个或多个‘任意字符’组成一个或多个组,供以后使用”。
所以..。
当你把它们都放在一起的时候
(.{8})..(.+)意思是‘将前8个字符(任意8个字符)匹配为组1’然后‘任意两个字符’然后‘1个或更多个字符为组2’。
这将允许您(取决于regex客户机/等等)。使用$1和$2打印、使用或...whatever.第1组和/或第2组的值。
希望这能有所帮助。
https://stackoverflow.com/questions/35733568
复制相似问题