当文本包含括号(也可能是其他特殊字符)时出现问题

时间:2012-12-08 19:33:40

标签: c# regex

我有以下表达式:[^(\r\n)]*来识别任何不包含\r\n的文字。 但是,如果文字包含(),则无法识别。

示例:

  1. "I have following expression to recognize any text."将被识别为OK。
  2. "I have following expression (A) to recognize any text."将无法识别。
  3. 我希望结果是完整的文字:"I have following expression (A) to recognize any text."

2 个答案:

答案 0 :(得分:1)

删除()。在你的角色类[]中,它们是文字的,不被视为元字符。

您可以为\r\n使用 positive look-ahead ,并使用以下内容捕获其余内容:

(.*)(?=\r\n)

答案 1 :(得分:0)

在运行正则表达式之前使用Regex.Escape处理输入。此方法专门用于“声明”正则表达式中具有特殊含义的任何字符,以便输入始终转换为与文字字符串匹配的内容。