[英]Match up to the comma - Regex
我创建了一个正则表达式模式(?<=[TCC|TCC_BHPB]\s\d{3,4})[-_\s]\d{1,2}[,]
这个模式匹配只是:
TCC 6005_5,
我应该更改到最后以匹配这两个字符串:
TCC 6005-5 ,
TCC 6005_5,
您可以在表达式中添加非贪婪通配符 ( .*?
):
(?<=(?:TCC|TCC_BHPB)\s\d{3,4})[-_\s]\d{1,2}.*?[,]
^^^
这现在也将匹配最后一位数字和逗号之间的任何字符。
正如评论中所指出的, [TCC|TCC_BHPB]
是一个字符 class 而不是文字匹配,所以我将其更改为(?:TCC|TCC_BHPB)
这大概是您的意图。
模式[TCC|TCC_BHPB]
的这一部分是一个字符 class 匹配列出的字符之一。 例如,它也可以写成[|_TCBHP]
要“匹配”两个字符串,您可以匹配所有部分,而不是使用正向的后视。
\bTCC(?:_BHPB)?\s\d{3,4}[-_\s]\d{1,2}\s?,
查看正则表达式演示
\bTCC
防止部分匹配的单词边界,然后匹配TCC
(?:_BHPB)?\s\d{3,4}
可选匹配_BHPB
,匹配空格字符和 3-4 位数字(使用[0-9]
匹配数字 0-9)[-_\s]\d{1,2}
匹配-
_
或空白字符之一\s?,
匹配一个可选的空格和,
请注意, \s
也可以匹配换行符。
使用后视:
(?<=TCC(?:_BHPB)?\s\d{3,4})[-_\s]\d{1,2}\s?,
或者,如果您想匹配除换行符之外的 1 个或多个空格
\bTCC(?:_BHPB)?[\p{Zs}\t][0-9]{3,4}[-_\p{Zs}\t][0-9]{1,2}[\p{Zs}\t]*,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.