Используйте RegexOptions.IgnoreCase
флаг:
Regex.Replace(strNote, strPattern, strReplacement, RegexOptions.IgnoreCase)
Если вы собираетесь игнорировать дело не должно быть никакой необходимости использовать LCase
. Мне также показалось странным, что у вас есть все эти символы $
в именах переменных - они не должны быть действительными ни на C#, ни на VB.NET.
РЕДАКТИРОВАТЬ # 2: Я понимаю, что вы, возможно, захотели заменить всю линию, которая соответствует шаблону замены
$1
, чтобы соответствовать ID. Если у вас есть необходимость использовать несколько вариантов вы можете
Or
их вместе следующим образом:
Regex.Replace(input, pattern, replacement, RegexOptions.IgnoreCase Or RegexOptions.Singleline)
EDIT # 1: вы используете неправильный метод для извлечения ID. У вас есть группа (\d+)
для захвата идентификатора, но вы используете Regex.Replace
в своем матче, поэтому вы получаете все остальное в тексте. Для того, чтобы соответствовать ID использовать следующие:
Dim input As String = "foo web id:2010 bar"
Dim pattern As String = ".*web id: ?(\d+).*"
Dim m As Match = Regex.Match(input, pattern, RegexOptions.IgnoreCase)
If m.Success Then
Dim id As String = m.Groups(1).Value
Console.WriteLine("ID: " & id)
Else
Console.WriteLine("No Match!")
End If
Вы заметите, мы имеем в виду Groups(1)
, которая удерживает значение, захваченное (\d+)
группы. Шаблоны с большим количеством групп могут приводить к путанице, особенно с вложенными группами. В этих случаях вы можете использовать именованные группы. Вот тот же код обновляется для использования именованных групп:
Dim input As String = "foo web id:2010 bar"
Dim pattern As String = ".*web id: ?(?<ID>\d+).*" ' group name added '
Dim m As Match = Regex.Match(input, pattern, RegexOptions.IgnoreCase)
If m.Success Then
' refer to group by group name '
Dim id As String = m.Groups("ID").Value
Console.WriteLine("ID: " & id)
Else
Console.WriteLine("No Match!")
End If
Спасибо, моя большая проблема, хотя это было при запуске этого многострочного текста. –
@ Джон вижу мои обновления. Если у вас все еще есть проблемы, пожалуйста, обновите свой пост с помощью некоторого примера ввода с текстом «многострочный». –
Это делает именно то, что он хотел, спасибо! –