Как убедиться, что подписка еще не существует, чтобы она не дублировалась?

Будет ли это делать?

[^\r]\n

В основном это соответствует «\n», которому предшествует символ, который не является «\r».

Если вы этого хотите для обнаружения строк, которые начинаются с одного только «\n», а затем попробуйте

([^\r]|$)\n

, который говорит, что он должен соответствовать «\n», но только те, которые являются первым символом строки или те, которые являются not , которым предшествует «\r»

. Могут быть специальные случаи для проверки, поскольку вы возитесь с определением самих строк, «$» может не работать слишком хорошо.

EDIT: credit @Kibbee Использование look-forward s явно лучше, поскольку оно не будет захватывать соответствующий предыдущий символ и также поможет с любыми случаями краев. Итак, вот лучшее регулярное выражение + код становится:

myStr = Regex.Replace(myStr, "(?<!\r)\n", "\r\n");
0
задан atkayla 28 February 2019 в 17:01
поделиться