Delphi TRegEx替换
我想将一个大字符串中的字符全部替换为#13#10,如果它们与模式匹配 但是,如何将我的模式的“[0-9][0-9][0-9][0-9][0-9][0-9][0-9]”值输入替换字段Delphi TRegEx替换,regex,delphi,Regex,Delphi,我想将一个大字符串中的字符全部替换为#13#10,如果它们与模式匹配 但是,如何将我的模式的“[0-9][0-9][0-9][0-9][0-9][0-9][0-9]”值输入替换字段 pattern := '@' + '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]' + '\$'; replacement := #13#10 + '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]' + '\$'; ts.Text := TRegEx.Replace(
pattern := '@' + '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]' + '\$';
replacement := #13#10 + '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]' + '\$';
ts.Text := TRegEx.Replace(AString, pattern, replacement, [roIgnoreCase]);
您可以这样做:
TRegEx.Replace(s, '@([0-9]{7}\$)', #13#10+'\1')
要分解它:
表示一个数字出现7次[0-9]{7}
- 参数
用于捕获7位数字和(…)
$
- 替换字符串中的
将扩展为捕获的字符串\1
虽然罗宾的方法更好 要执行检查,您可以使用正向前瞻:
pattern := '@(?=[0-9]{7}\$)'
replacement := #13#10
(?=…)
将检查@
后面是您想要的,而不选择以下数字。您的模式是什么<代码>@然后是7位数字,然后是文字$
?我宁愿你接受罗宾的答案。这样更好。还是谢谢你!