В регулярных выражениях *
означает «нули или более (шаблон перед ним)», например a*
означает ноль или более a
, а (xy)*
ожидает совпадения вида xyxyxyxy...
.
Чтобы соответствовать любым символам, вы должны использовать .*
, т.е.
Regex Pattern = new Regex(@"s.*\|.*d");
(также |
означает «или»)
Здесь .
будет соответствовать любым символам [1] , включая |
. Чтобы избежать этого, вам нужно использовать класс символов :
new Regex(@"s[^|]*\|[^d]*d");
Здесь [^x]
означает «любой символ, кроме x
».
Вы можете прочитать http://www.regular -expressions.info / tutorial.html , чтобы узнать больше о RegEx.
[1]: за исключением новой строки \n
. Но .
будет соответствовать \n
, если вы передадите опцию Singleline. Ну, это более продвинутый материал ...