说我有这个正则表达式:
(?:begin\s+)?(\S+)(?:\s+\S+)*\s+(\S+)(?:\s+end)?
(可选开头,一个单词,一组任意单词,一个单词,可选结尾,全部用空格分隔)
这个表达:
开始test1 test2 test3 end
我想使用括号来匹配此表达式中的“test1”和“test3”。无论单词“begin”是否在表达式中,“test1”匹配成功,因为“begin”是可选的。但是,“test3”仅在“end”不存在时匹配(如果“end”在那里,“end”匹配),即使“end”以相同方式变为可选。如何改变这一点,以便我可以忽略“结束”这个词,如果它在那里?
答案 0 :(得分:0)