我得到了一些字符串来搜索正则表达式的匹配。正则表达式优先考虑最长的模式
foo
AB0001
AB0002 foo
foo AB0003
foo AB0004A AB0004.1
AB0005.1 foo AB0005A bar AB0005
的期望的匹配是每行一个ID而与在端部具有字母ID应该被优先,而具有0.1的ID应该被忽略。
foo -> no match
AB0001 -> AB0001
AB0002 foo -> AB0002
foo AB0003.1 -> no match
foo AB0004A AB0004.1 -> AB0004A
AB0005.1 foo AB0005A bar AB0005 -> AB0005A
我以为我可以很容易地使用由交替|
符号赋予优先级的ID,并在最后一个大写字母,但仍然存在总是给多个匹配的优先级。
我的建议: regex101.com/r/yP5kX4/1
Offtopic:当使用正则表达式整体开始^
结束与$
与捕获/非捕获组工作时,我应该写的正则表达式尽可能短?
您无法通过R中的纯正PCRE/TRE正则表达式实现此功能。 –