我的正则表达式字符串有问题。我有两个字符串的组合如下,
2.3.8.2.2.1.2.3.4.12345 = WORDS: "String to capture"
2.3.8.2.2.1.2.3.4.12345 = ""
字符串
Regex:
1\.2\.3\.4\.(\d+) = WORDS: (?|"([^"]*)|([^:]*))
型
https://regex101.com/r/kQ3wT5/10-匹配
https://regex101.com/r/kQ3wT5/9-不匹配
这个正则表达式只匹配第一个字符串,而不匹配第二个字符串,因为第二个字符串是空的。所以正则表达式必须在两种情况下都匹配。还有一件事我真的不想用“全球”匹配。
1条答案
按热度按时间s3fp2yjn1#
您需要将
WORDS:<space>
设置为可选的,方法是用一个 optional non-capturing group将其封装起来:字符串
参见regex demo。
(?:WORDS: )?
匹配WORDS:
子串的1或0个序列(由于?
量词),后跟一个空格。