我正在使用一个工作流自动化工具(用Java构建),它允许输入CSV文件。CSV将手动创建,并且基于哪些列被填充,某些操作将由工作流执行。因此,只有在没有找到以下条件时,我才需要匹配字符串(一次只匹配一个CSV行):
考虑下面要匹配的输入文本
HMSS TN PUPIL EDITION LV 5,HMHSS Ohio PE LV 5-6 Making A New Nation, HMH SCIFSN TN SE G6 2019, CA IMPUSHGGROCONFG8SUBBXCNTLBL, "R180 NG LBOOK TG STG B NAT""L", HMH BIEN DIT TE LV1A/18/1 2018, DTM NOW TE M&D, MD GOMATH SP SE INACTV WKTXT ACC7 2014*, "0158009673, 0158009681, 015800969X, 0158009703"输入文本规则:不能以空格开头,不能以空格结尾
这不应该与第一个值匹配--缺少第一个值:
,HMHSS Ohio PE LV 5-6 Making A New Nation, HMH SCIFSN TN SE G6 2019, CA IMPUSHGGROCONFG8SUBBXCNTLBL, "R180 NG LBOOK TG STG B NAT""L", HMH BIEN DIT TE LV1A/18/1 2018, DTM NOW TE M&D, MD GOMATH SP SE INACTV WKTXT ACC7 2014*, "0158009673, 0158009681, 015800969X, 0158009703"这不应该匹配-缺少中间值:
HMHSS Ohio PE LV 5-6 Making A New Nation, , HMH SCIFSN TN SE G6 2019, CA IMPUSHGGROCONFG8SUBBXCNTLBL, "R180 NG LBOOK TG STG B NAT""L", HMH BIEN DIT TE LV1A/18/1 2018, DTM NOW TE M&D, MD GOMATH SP SE INACTV WKTXT ACC7 2014*, "0158009673, 0158009681, 015800969X, 0158009703"这不应该匹配-缺少最后一个值:
HMHSS Ohio PE LV 5-6 Making A New Nation, HMH SCIFSN TN SE G6 2019, CA IMPUSHGGROCONFG8SUBBXCNTLBL, "R180 NG LBOOK TG STG B NAT""L", HMH BIEN DIT TE LV1A/18/1 2018, DTM NOW TE M&D, MD GOMATH SP SE INACTV WKTXT ACC7 2014*, "0158009673, 0158009681, 015800969X, 0158009703",我试过的表达式
^(("(?:[^"]|"")*"|[^,]*)(,("(?:[^"]|"")*"|[^,]*))*)$匹配整个字符串。
[-\w\s"/&*]+(,[-\w\s"/&*]+)*是我最近的一次。没有抓住“逗号空格逗号”。我需要考虑整个输入字符串作为一个整体。
非常感谢您的阅读和帮助!
发布于 2017-03-22 02:34:03
sed -En "/^[^\s,][^,]*[^\s,](,[^\s,][^,]*[^\s,])*$/p"预期:
如果要使用整个字符串,请将其括在另一对"()“中,并使用"\1”。
我给一名示威者看过苏德。
我可以转换为perl或egrep风格的regexes,但缺乏java使用的regex风格的经验。
https://stackoverflow.com/questions/42941291
复制相似问题