[英]Regex Exclude Character From Group
我有一个回应:
MS1:111980613994 124 MS2:222980613994124
我有以下正则表达式:
MS\d:(\d(?:\r?\n?)){15}
根据Regex,“ (?:\\r?\\n?)
”部分应使其与组匹配,但应将其从捕获中排除(以便从组中获得连续的值)。
问题是对于“ MS1:xxx
”,它与[CR][LF]
匹配并将其包括在组中。 它应该从捕获中排除...
请帮助。
(?:...)
语法并不意味着将封闭的模式从包含(?:...)
的捕获组中排除。 这意味着由(?:...)
组成的组将不会创建新的捕获组。 换句话说,如果它们被捕获组包围,则捕获组将捕获与非捕获组匹配的字符。
如果您真的想忽略嵌入式\\r
和\\n
最好的选择是将它们删除。 您没有说出您使用的是哪种语言,但是等效的语言(Python)应该可以使用:
s = re.sub(r'[\r\n]', '', s)
据我所知,您将必须使用2个正则表达式。 一个是“ MS \\ d:(\\ d(?:\\ r?\\ n?)){15}”,另一个用于从比赛中删除换行符。
请参考“ 正则表达式以跳过捕获组中的字符 ”。
也许您的意思是将[CR] [LF]匹配部分放在捕获的组之外,例如: MS\\d:(\\d){15}(?:\\r?\\n?)
MS\\d:(?:(\\d)\\r?\\n?){15}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.