正则表达式:如何使用之前的比赛进行匹配?

Rob*_*eph 3 python regex python-2.7

我正在搜索表单的字符串模式:

XXXAXXX 
# exactly 3 Xs, followed by a non-X, followed by 3Xs
Run Code Online (Sandbox Code Playgroud)

所有X必须是相同的字符,A不能是X.

注意:我没有明确搜索X和As - 我只需要找到这种字符模式.

是否可以使用正则表达式构建它?如果重要的话,我将用Python实现搜索.

提前致谢!-CS

更新:

@ rohit-jain在Python中的回答

x = re.search(r"(\w)\1{2}(?:(?!\1)\w)\1{3}", data_str)
Run Code Online (Sandbox Code Playgroud)

@jerry在Python中的回答

x = re.search(r"(.)\1{2}(?!\1).\1{3}", data_str)
Run Code Online (Sandbox Code Playgroud)

Roh*_*ain 8

你可以试试这个:

(\w)\1{2}(?!\1)\w\1{3}
Run Code Online (Sandbox Code Playgroud)

分手:

(\w)        # Match a word character and capture in group 1
\1{2}       # Match group 1 twice, to make the same character thrice - `XXX`
(?!\1)      # Make sure the character in group 1 is not ahead. (X is not ahead)
\w          # Then match a word character. This is `A` 
\1{3}       # Match the group 1 thrice - XXX
Run Code Online (Sandbox Code Playgroud)

  • 您可能希望将"单词"改为"单词字符",只是为了清楚. (3认同)