Regex 正好匹配一个正则表达式项

Regex 正好匹配一个正则表达式项,regex,Regex,我想要一个正则表达式,它只匹配多个术语中的一个术语。例如,给定字符串01010,我希望将0s与恰好一个相邻的1匹配 我目前使用的正则表达式是0(?=1)|(?如果0后面跟或前面跟有1,则模式匹配,但不限制它只能是其中一个。您可以添加一个负向后看和一个负向前看来实现这一点 尝试以下方法: (?<!1)0(?=1)|(?<=1)0(?!1) 如果0后面或前面是1,则模式匹配,但不限制它只能是其中一个。您可以添加一个负向后看和一个负向前看来实现这一点 尝试以下方法: (?<!1)0

我想要一个正则表达式,它只匹配多个术语中的一个术语。例如,给定字符串
01010
,我希望将
0
s与恰好一个相邻的
1
匹配


我目前使用的正则表达式是
0(?=1)|(?如果
0
后面跟或前面跟有
1
,则模式匹配,但不限制它只能是其中一个。您可以添加一个负向后看和一个负向前看来实现这一点

尝试以下方法:

(?<!1)0(?=1)|(?<=1)0(?!1)

如果
0
后面或前面是
1
,则模式匹配,但不限制它只能是其中一个。您可以添加一个负向后看和一个负向前看来实现这一点

尝试以下方法:

(?<!1)0(?=1)|(?<=1)0(?!1)

以下正则表达式解决了问题的一般化。它匹配字符串中的每个字符:1)后跟相同的字符,而不是后跟相同的字符;或2)前面有相同的字符,后面没有相同的字符

^(.)(?=\1)|(?<=(.))(?=\2).$|(?<=(.))(?:(?=\3).(?!\3)|(?!\3)(.)(?=\4))

^(.)(?=\1)|(?以下正则表达式解决了问题的泛化。它匹配字符串中的每个字符:1)后跟相同的字符,而不是后跟相同的字符;或2)前面有相同的字符,后面没有相同的字符

^(.)(?=\1)|(?<=(.))(?=\2).$|(?<=(.))(?:(?=\3).(?!\3)|(?!\3)(.)(?=\4))

^()(?=\1)|(?太棒了!不过我还在想,如果我想匹配一个3个字符或1个字符以外的
1
,最好的方法是什么。检查两个以上的术语会更难吗?@dingledooper更新了答案。Dingle,你可以发布一个关于你的沉思主题的问题,只是不要为这个问题而激动体操你正期待从正则表达式中得到答案。这太棒了!不过我仍在想,如果我想匹配一个
1
,距离是3个字符还是1个字符,那么最好的方法是什么。检查两个以上的术语会更难吗?@dingledooper更新了答案。Dingle,你可以发布一个关于这个主题的问题对于你的沉思,只是不要对你期望从正则表达式中得到的体操感到兴奋。