Regex: Элегантный способ сопоставить, является ли строка префиксом другой заданной строки? [Дубликат]

Если вы удалите или замените одним символом недопустимые символы, у вас могут возникнуть столкновения:

  & lt; abc - & gt;  abc & gt; abc - & gt;  abc  

Вот простой способ избежать этого:

  public static string ReplaceInvalidFileNameChars (строка s) {char [] invalidFileNameChars = System.IO.Path  .GetInvalidFileNameChars ();  foreach (char c in invalidFileNameChars) s = s.Replace (c.ToString (), "[" + Array.IndexOf (invalidFileNameChars, c) + "]");  return s;  }  

Результат:

  & lt; abc - & gt;  [1] abc & gt; abc - & gt;  [2] abc  
4
задан Dr. Person Person II 30 October 2012 в 05:35
поделиться

3 ответа

Вы можете сделать это

punct(u(a(t(i(on?)?)?)?)?)?

internat(i(o(n(a(l(i(z(a(t(i(on?)?)?)?)?)?)?)?)?)?)?)?
4
ответ дан Anirudha 15 August 2018 в 20:55
поделиться

Это не действительно регулярное выражение, но я думаю, что его проще решить простым String.prototype.indexOf методом

'punctuation'.indexOf(str) >= 0

0
ответ дан BotanMan 15 August 2018 в 20:55
поделиться

Попробуйте следующее:

punct(u(a(t(i(o(n)?)?)?)?)?)?
1
ответ дан Kirill Polishchuk 15 August 2018 в 20:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: