我需要查找并替换文本中的所有单词。
这些单词的格式:
以(long)
开头,以;
结尾
示例
(long)Row["Id"];
什么是这种格式的正则表达式?我尝试了一些但不适合我。 谢谢。
答案 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.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.
}
}