正则表达式匹配从开始到结束的连续字符
regex matching consecutive characters from start and end
我正在尝试匹配一个字符串,该字符串在行首包含三个连续的字符,在行尾包含六个相同的连续字符。
例如
CCC 我喜欢正则表达式 CCCCCC
C 将从搜索中突出显示
我找到了一种使用这两个正则表达式代码找到前 3 个和后 6 个的方法,但我很难将它们组合起来
^([0-9]|[aA-zZ]) and ([0-9]|[aA-zZ])$
感谢任何帮助
如果您只想用一个正则表达式来“突出显示”前三个字符 和 最后六个字符,可以使用:
(?:^([0-9A-Za-z])(?=.*{6}$)|([0-9A-Za-z]){5}(?<=^{3}.*)$)
网上看一个demo
(?:
- 打开 non-capture 组以允许交替;
^([0-9A-Za-z])(?=.*{6}$)
- Start-line 带有第一个捕获组的锚点,后跟两个指向同一组的反向引用。接下来是一个积极的前瞻,断言最后 6 个字符是相同的;
|
- 或者;
([0-9A-Za-z]){5}(?<=^{3}.*)$
- 另一种方法是将第二个捕获组与 5 个反向引用相匹配,然后是正后向(zero-width)以检查前三个字符是否相同。
现在,如果您不想对“突出显示”其他部分过于严格,只需使用捕获组即可:
^(([0-9A-Za-z])).*({6})$
在线查看demo。您现在可以在哪里引用捕获组 1 和 3。
我正在尝试匹配一个字符串,该字符串在行首包含三个连续的字符,在行尾包含六个相同的连续字符。 例如 CCC 我喜欢正则表达式 CCCCCC C 将从搜索中突出显示
我找到了一种使用这两个正则表达式代码找到前 3 个和后 6 个的方法,但我很难将它们组合起来
^([0-9]|[aA-zZ]) and ([0-9]|[aA-zZ])$
感谢任何帮助
如果您只想用一个正则表达式来“突出显示”前三个字符 和 最后六个字符,可以使用:
(?:^([0-9A-Za-z])(?=.*{6}$)|([0-9A-Za-z]){5}(?<=^{3}.*)$)
网上看一个demo
(?:
- 打开 non-capture 组以允许交替;^([0-9A-Za-z])(?=.*{6}$)
- Start-line 带有第一个捕获组的锚点,后跟两个指向同一组的反向引用。接下来是一个积极的前瞻,断言最后 6 个字符是相同的;|
- 或者;([0-9A-Za-z]){5}(?<=^{3}.*)$
- 另一种方法是将第二个捕获组与 5 个反向引用相匹配,然后是正后向(zero-width)以检查前三个字符是否相同。
现在,如果您不想对“突出显示”其他部分过于严格,只需使用捕获组即可:
^(([0-9A-Za-z])).*({6})$
在线查看demo。您现在可以在哪里引用捕获组 1 和 3。