Полагаю, что ^
и $
не нужны.
sln предлагает это выражение:
(?<=^|\r?\n)\bTEXT\b
, который будет работать в c#
или Python.
Я не совсем уверен, почему в Python все будет работать нормально, ^(TEXT ?)$
шаблон в принципе не должен работать в Python для этого случая, но, очевидно, я не прав.
Тест
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?=^|\r?\n)\bTEXT\b";
string substitution = @"MTEXT";
string input = @"TEXT Some data before TEXT some data after
TEXTY Some data before TEXT
TEXT Some data before TEXT some data after
TEXT Some data before TEXT NOTTEXT ";
RegexOptions options = RegexOptions.Multiline;
Regex regex = new Regex(pattern, options);
string result = regex.Replace(input, substitution);
}
}