4

我从来无法自己构建正则表达式,现在我有一个需要它的简单应用程序。如何构造一个匹配的简单正则表达式:

  1. 固定的字符串
  2. 没有空格/任何空格
  3. '=' 字符
  4. 没有空格/任何空格
  5. '(' 字符

目前我正在使用以下代码来匹配整个单词,但正如您所见,它的功能非常有限。

Regex.Matches(data, @"\b" + Regex.Escape(columnID + "=(") + @"\b");
Regex.Matches(data, @"\b" + Regex.Escape(columnID + "= (") + @"\b");
Regex.Matches(data, @"\b" + Regex.Escape(columnID + " =(") + @"\b");
Regex.Matches(data, @"\b" + Regex.Escape(columnID + " = (") + @"\b");
4

4 回答 4

3
于 2012-06-07T19:09:08.013 回答
2

这是一个满足您要求的正则表达式。以您的固定字符串作为前缀。

Regex.Matches(data, Regex.Escape(columnID) + @"\s*=\s*\(");
于 2012-06-07T19:14:49.837 回答
1
于 2012-06-07T19:16:37.260 回答
1

您说“任何空格”,但根据您的正则表达式所说的,您似乎正在寻找一个可选的单个空格。如果是这种情况,请使用问号。

Regex.Matches(data, Regex.Escape(columnID) + @"\s?=\s?\(");

正则表达式中的问号表示前一个字符(或组,如果使用括号)是可选的。

如果您正在寻找可能存在或不存在的单个空格,则不要使用 + 或 *,因为 * 将匹配 0 个或多个空格,直到满足下一个字符并且 + 将匹配一个或多个白色空格直到满足下一个字符。

于 2012-06-07T19:47:21.230 回答