Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi TRegEx替换_Regex_Delphi - Fatal编程技术网

Delphi TRegEx替换

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(

我想将一个大字符串中的字符全部替换为#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(AString, pattern, replacement, [roIgnoreCase]);

您可以这样做:

TRegEx.Replace(s, '@([0-9]{7}\$)', #13#10+'\1')
要分解它:

  • [0-9]{7}
    表示一个数字出现7次
  • 参数
    (…)
    用于捕获7位数字和
    $
  • 替换字符串中的
    \1
    将扩展为捕获的字符串

虽然罗宾的方法更好

要执行检查,您可以使用正向前瞻:

pattern := '@(?=[0-9]{7}\$)'
replacement := #13#10

(?=…)
将检查
@
后面是您想要的,而不选择以下数字。

您的模式是什么<代码>@然后是7位数字,然后是文字
$
?我宁愿你接受罗宾的答案。这样更好。还是谢谢你!