C # - Math.Sqrt () возвращает десятичные дроби

Механизм регулярных выражений пытается сопоставить альтернативы в том порядке, в котором они указаны. Поэтому, когда шаблон (foo|foobar)&? сразу же foo, он продолжает поиск совпадений. Следующий бит входной строки - bar& b, который не может быть сопоставлен.

Другими словами, поскольку foo является частью foobar, нет способа (foo|foobar) когда-либо соответствовать foobar ], так как он всегда будет соответствовать foo.

Иногда это может быть очень полезным трюком. Шаблон (o|a|(\w)) позволит вам захватить \w и a или o по-другому:

Regex.Replace("a foobar& b", "(o|a|(\\w))", "$2") // fbr& b
-14
задан O. Jones 13 September 2015 в 12:14
поделиться