Для меня , следующий код возвращает истину в любом случае:
using System;
using System.Text.RegularExpressions;
namespace FrenchRegex
{
class Program
{
static void Main(string[] args)
{
var a = "ca va";
var b = "ça va";
var regex = @"\b((c|ç)a\sva)";
var matchA = Regex.Match(a, regex).Success;
var matchB = Regex.Match(b, regex).Success;
Console.WriteLine("Matches '" + a + "': " + matchA);
Console.WriteLine("Matches '" + b + "': " + matchB);
Console.ReadKey();
}
}
}
Я скопировать и вставить в VS2010, так что вам, возможно, придется делать то же самое, чтобы воспроизвести мой результат.
В любом случае, я думаю, что регулярное выражение, которое соответствует как «ça va», так и «ca va», будет \b([cç]a\sva)
.
Ваш код работает правильно (добавив '@', чтобы избежать ошибок компиляции) –
У меня 2 матча. И вам не хватает символа @ перед строковыми константами в ваших регулярных выражениях. – empi
@ L.B .: Не только ошибки компиляции. Без '@', '\ b' означает« совпадение символа обратного пространства ». –