Описание
Это будет соответствовать модуль ID = «107», где число любое количество цифр в двойные кавычки. Я изменил ваши экранированные кавычки на [""]
, чтобы они могли быть вложены в строку. Я использую \b
, который будет искать слово break и позволит строке появляться в любом месте входа. Но если вы хотите проверить конкретный текст, вы можете сделать \A
или ^
, чтобы вместо этого обозначить начало строки.
\b(Module\s+ID=[""](\d{1,})[""])
Группы
Группа 0 захватит всю строку
- будет получить иметь от модуля до второй цитаты
- получит значение внутри котировки
C# Пример кода:
using System;
using System.Text.RegularExpressions;
namespace myapp
{
class Class1
{
static void Main(string[] args)
{
String sourcestring = "for Module ID=""107"" Can you h";
Regex re = new Regex(@"\b(Module\s+ID=[""](\d{1,})[""])",RegexOptions.IgnoreCase);
MatchCollection mc = re.Matches(sourcestring);
int mIdx=0;
foreach (Match m in mc)
{
for (int gIdx = 0; gIdx < m.Groups.Count; gIdx++)
{
Console.WriteLine("[{0}][{1}] = {2}", mIdx, re.GetGroupNames()[gIdx], m.Groups[gIdx].Value);
}
mIdx++;
}
}
}
}
$matches Array:
(
[0] => Array
(
[0] => Module ID="107"
)
[1] => Array
(
[0] => Module ID="107"
)
[2] => Array
(
[0] => 107
)
)
Я думаю, что вам нужно, чтобы избежать \ а. Итак, «\\ A * Module \\ sID = \" 107 \ "". – Tyanna
Итак, вам всегда нужно избегать разных, например? \ b \ W \ d \ f и т. д.? Для меня это означает, что они почти всегда считались бы \\ b \\ W \\ d \\ f, затем правым? –
\ - символ побега. Если он находится в вашей строке, но вы не хотите, чтобы он ушел от следующего символа, вам нужно его избежать, поэтому он превращается в \\. т.е. ~ \ "означает просто" в вашей строке выше. – Tyanna