我需要查找并替换文本中的所有单词。这些词的格式:以示例开头,以
示例(long)
结尾;
(long)Row["Id"];
这种格式的正则表达式模式是什么?我尝试了一些,但对我不起作用。谢谢。
\(long\)(.*?);
(.*?)
通常会尝试捕获尽可能多的内容;
以在最后找到。至于(long)
你将需要转义括号。
尝试以下操作:
var input = "(long)Row["Id"];";
var result = Regex.Replace(input, @"\(long\)([^;]+)", "$1.ToLong()");
以下表达式\(long\)([^;]+)
:
\(
: 匹配一个开括号(
。long
: 从字面上匹配单词 long。\)
: 匹配一个右括号)
。([^;]+)
: 匹配一个或多个非分号字符并将它们放入捕获组 1。作为正则表达式的替代方法,您可以使用String.StartsWith
和String.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.
}
}