通过开始和结束字符查找文本中的单词

时间:2013-11-09 14:18:16

标签: c# regex

我需要查找并替换文本中的所有单词。 这些单词的格式: 以(long)开头,以;结尾 示例

(long)Row["Id"];

什么是这种格式的正则表达式?我尝试了一些但不适合我。 谢谢。

3 个答案:

答案 0 :(得分:2)

\(long\)(.*?);

(.*?)通常会尝试尽可能多地捕获最后找到;的内容。至于(long),你需要逃避括号。

答案 1 :(得分:1)

尝试以下方法:

var input = "(long)Row["Id"];";
var result = Regex.Replace(input, @"\(long\)([^;]+)", "$1.ToLong()");

以下表达式:\(long\)([^;]+)

  • \(:匹配打开的括号(
  • long:字面意思匹配单词。
  • \):匹配一个封闭的括号)
  • ([^;]+):匹配一个或多个非分号字符并将其置于捕获组1中。

答案 2 :(得分:0)

作为正则表达式的替代方法,您可以使用String.StartsWithString.EndsWith方法。

例如;

string[] lines = File.ReadAllLines(@"C:\Users\Public\TestFolder\Text.txt");            
foreach(string word in lines)
{
   if (word.StartsWith("(long)", StringComparison.InvariantCulture) && word.EndsWith(';', StringComparison.InvariantCulture))
   {
      //Replace your string here.
   }
}