Eu tenho o seguinte regex, em que desejo corresponder a qualquer ponto explícito seguido por um ou mais:
<b> <i> <u> </b> </i> </u>
Gostaria que este Regex NÃO correspondesse a esse padrão se ocorrer no final da string.
string = Regex.Replace(string, ".((<[/biu]+>)+)", ".$1||")
Ex:
This <b>should match.</b> allright.
This <i><b>shouldn"t match.</b></i>
Respostas:
13 para resposta № 1".((<[/biu]+>)+)(?!$)"
Use a asserção lookahead negativa com o parâmetro $
símbolo para verificar o final da linha. (Lembrar, $
corresponde ao final da linha, então você deseja não corresponda a isso.)
5 para resposta № 2
Você poderia usar agrupamento atômico:
.(?>(?:</?[biu]>)+)(?!$)
3 para resposta № 3
Force que haja mais itens após o último elemento fechado, mas verifique se eles não são elementos.
".((<[/biu]+>)+)[^<>]+"