如果匹配模式,我想用#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]);
答案 0 :(得分:15)
要执行检查,您可以使用积极的前瞻:
pattern := '@(?=[0-9]{7}\$)'
replacement := #13#10
(?=...)
会检查@
后面是您想要的内容,而不会选择以下数字。
答案 1 :(得分:5)
你可以这样做:
TRegEx.Replace(s, '@([0-9]{7}\$)', #13#10+'\1')
要打破它:
[0-9]{7}
表示7次出现数字。(...)
用于捕获7位数和$
。\1
会扩展为捕获的字符串。虽然罗宾的做法更好!