ruby – 正则表达式,用于匹配捕获组中的前一个或后一个字母字符
发布时间:2020-12-17 02:40:53 所属栏目:百科 来源:网络整理
导读:比如说我有以下数据: abcdefzybacd 我希望能够以匹配第一个字符的方式匹配它,然后根据第一个字符的捕获组匹配第二个字符. 上例中的每一行都应匹配,而cc或af之类的不应该匹配. 详细说明,我的想法看起来像这样: (基于ruby的正则表达式) /^(?first[a-z])gfir
比如说我有以下数据:
ab cd ef zy ba cd 我希望能够以匹配第一个字符的方式匹配它,然后根据第一个字符的捕获组匹配第二个字符. 上例中的每一行都应匹配,而cc或af之类的不应该匹配. 详细说明,我的想法看起来像这样: (基于ruby的正则表达式) /^(?<first>[a-z])g<first>$/ 然而,这与aa或ac匹配,这两者都是无效的,以及预期的ab. 有没有办法修改捕获组,或用类似于我想要的语法包围它? 解决方法
正则表达式中没有字符算术.你将不得不走很长的路,并表达你的比赛作为一个长期的交替:
ab|ba|bc|cb|.... 您可以轻松优化它: ab|b[ac]|c[bd]...y[xz]|zy 不要费心编写代码来生成它:编写整个字符串应该需要两分钟. (当然,除非是@NeilSlater或@ AmalMurali,否则请参阅评论.) 看,我已经在 ab|b[ac]|c[bd]|d[ce]|e[df]|f[eg]|g[fh]|h[gi]|i[hj]...y[xz]|zy 你完成了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |