假设我有一个混乱的数据模式:
我试图使用regex来过滤前缀上的"-“或"_",以及那些没有。
期望输出
column1 column2 column3
=========== =========== ===========
TRND - 0LL2134.SV
TRN _ RTXDFT.SV
TRND _ ZRSFTFF.SV
<blank> <blank> DR3345.SV到目前为止我用了
\-|\_对前缀使用"-“或"”进行筛选,但对没有前缀的字符串进行挑战筛选,使用"-“或"”
发布于 2022-04-22 15:30:11
使用[-_]?匹配可选分隔符。
对于第一个单词使用一个非贪婪的量词,这样如果没有分隔符,它将是空的,并且这个单词将与第3列相关联。
^([A-Z0-9]*?)([-_]?)([A-Z0-9]+\.SV)$发布于 2022-04-22 15:31:47
发布于 2022-04-22 15:33:09
匹配的表达式应该包含3个组,用于将数据输入到输出的每个列中,并锚定在测试字符串的开头。
具体来说,试着..。
/^((.*)([_-])(.*))|^([^_-]+)$/捕获组#2,3,4将包含进入您的列1,2,3,resp的数据;如果测试字符串中没有分离字符,则第3列的内容将位于捕获组#5中。
按照您描述问题的方式,这个模式总是匹配的--唯一的区别是测试字符串如何分配到列槽中。如果有效的测试字符串需要在.SV上结束,请使用
/^((.*)([_-])(.*[.]SV))$|^([^_-]+[.]SV)$/由于您还没有指出在哪个编程环境中操作,这个答案不能专门说明如何使用regex。
https://stackoverflow.com/questions/71971096
复制相似问题