在此 http://tools.netshiftmedia.com/regexlibrary/上进行测试
好吧,我想匹配下面的句子:
首先没有我最后
首先我最后
首先没有最后
先到后
第一个不是最后一个
第一个最后一个
第一个没有最后一个
第一个最后一个
或者
第一个最后一个
常规模式:
first ((no )?((lo)|(no)|(la)|(te)|(me)))? last
它无法匹配
first last
怎样才能使这个匹配
first last
在此 http://tools.netshiftmedia.com/regexlibrary/上进行测试
好吧,我想匹配下面的句子:
或者
常规模式:
first ((no )?((lo)|(no)|(la)|(te)|(me)))? last
它无法匹配
first last
怎样才能使这个匹配
first last
在正则表达式的某处添加可选空格,例如:
first ((no )?(((lo)|(no)|(la)|(te)|(me)) ))?last
您的正则表达式需要两个空格 - 可选中央正则表达式的每一端各一个。
此正则表达式将“last”的前导空格移动到“lo|no|la...”正则表达式的尾随空格,使其具有与可选的“no”类似的效果。
您的正则表达式包含两个空格。
删除其中之一。
first((no )?((lo)|(no)|(la)|(te)|(me)))? last
或者
first ((no )?((lo)|(no)|(la)|(te)|(me)))?last
如果有 a ,你只需要额外的空间no,所以让它成为一个组的一部分:
first ((no )?((lo)|(no)|(la)|(te)|(me) ))?last
无论您对空格做什么,都要保持一致并注意它们进入哪个组。将它们放在它们所属的单词之后或之前。这应该是等效的,但是在单词之前而不是之后放置空格:
first(( no)?( (lo)|(no)|(la)|(te)|(me)))? last
您可能需要考虑使用\s字符类+来更灵活地使用空格。
您当前的正则表达式中有两个空格。使第二个空格可选。
你的正则表达式有一个太多的空格......
first ((no )?((lo)|(no)|(la)|(te)|(me)))? last
如果我们删除中间位,我们得到
first last
注意第一个之后的空格,最后一个之前的空格。删除其中一个空格,它将起作用。
试试这个可能会有所帮助。我是根据您提供的链接制作的,因此在实际情况下可能是错误的。
这也将不匹配(如果你不想要)first no la last last last
first ((no )?((lo)|(no)|(la)|(te)|(me))? )?last$