Regex 正则表达式问题-匹配单个字母。排除连续字母
我在创建一个正则表达式时遇到了一个问题,它将提供我想要的东西。我需要你的帮助!因此,我们使用的文本是:Regex 正则表达式问题-匹配单个字母。排除连续字母,regex,Regex,我在创建一个正则表达式时遇到了一个问题,它将提供我想要的东西。我需要你的帮助!因此,我们使用的文本是: S 1SS 1S “S”和“1S”是匹配项。“1SS”不是匹配项。我希望它比仅仅排除任何带有三个字符的内容更具体一点,但这可能是一个解决方案 关于如何排除“1”还有其他想法吗?我搞不懂 谢谢, 标记S。您可以使用负先行模式来避免匹配连续字母S: \b\d*S(?!S) 演示: 解释:\b匹配一个单词边界,以确保它不会与两个连续的S中的第二个S匹配\d*匹配零位或
S 1SS 1S
“S”和“1S”是匹配项。“1SS”不是匹配项。我希望它比仅仅排除任何带有三个字符的内容更具体一点,但这可能是一个解决方案
关于如何排除“1”还有其他想法吗?我搞不懂
谢谢,
标记S。您可以使用负先行模式来避免匹配连续字母
S
:
\b\d*S(?!S)
演示:
解释:
\b
匹配一个单词边界,以确保它不会与两个连续的S
中的第二个S
匹配<代码>\d*匹配零位或多位数字以允许前面的可选数字S
后面紧跟着(?!S)
,这是一种消极的前瞻模式,可以确保S
后面的不是另一个S
,具有更一般应用程序的regexp类似于:
\b(?:(.)(?!\1))+\b
- \b代表单词边界李>
- 列表项
- (?:)是非捕获组李>
- (?:)是一个负前瞻组李>
- \1是团体参考
S
,因此不再需要捕获组和反向引用,我已经相应地更新了正则表达式。如果您认为答案正确,请将其标记为已接受。谢谢,太好了,就是这个。我本来想说数字可能不是“1”,但你在更新的答案中提到了这一点。非常感谢。