[英]RegEx Replace - Remove Non-Matched Values
首先,道歉; 我对 RegEx 的世界还很陌生。
其次(更多的是仅供参考),我使用的应用程序仅具有 RegEx Replace 功能,因此我可能会限制可以/不能实现的内容。
挑战
我有一个自由文本字段(标记为Description
),主要包含“无用”文本。 但是,有些记录将包含一个或多个有用的 ID,我想提取这些 ID。
每个 ID 都将具有相同的三字母前缀 ( APP
),后跟一个五位数字值(例如12911
)。
例如,我的Description
字段中有以下字符串;
APP00001Was APP00002TEST APP00003Blah blah APP00004 Apple APP11112OrANGE APP
旅程
我设法非常粗略地组合了一个接近我需要的表达式(尽管我实际上需要相反的);
/!?APP\d{1,5}/g
结果;
斗争
但是,在替换时,我只能保留不匹配的值;
Was TEST Blah blah Apple OrANGE APP
终局之战
我希望输出是;
APP00001 APP00002 APP00003 APP00004 APP11112
如果这是一个有点“笨拙”的问题,再次道歉; 但任何帮助将不胜感激,欢迎所有想法。
提前谢谢了。
你可以使用一个替代|
捕获以组 1 中的单词边界开始的模式或匹配 1+ 单词字符后跟可选的空白字符。
您在第 1 组中捕获的内容可以用作替换。 比赛将不在替补中。
使用!?
匹配可选的感叹号。 您可以将其添加到模式中,但它不是示例数据的一部分。
\b(APP\d{1,5})\w*|\w+\s*
查看正则表达式演示
在替换中使用捕获组 1,主要使用$1
或\\1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.