我遇到了一个问题,我需要在一组数字中搜索一个数字,这些数字以相同的开头但以不同的结尾结束,例如:
ConcurrentQueue.TryPeek()
我可能还要补充一点,这是在日志文件中带有一些其他乱码,可能会使问题复杂化。假设我想匹配261234
261235
261236
261334
261244
261134
260234
260134
260123
以外的任何内容。
我的第一个直觉是尝试261134
,但它与上面的都不匹配,因为在某些时候,每个人中有人在我指定否定的位置上有一个取反的字符。
我能想到的与解决方案最接近的事情是一英里长的表达式,它会像这样将ors链接在一起:
26[^1][^1][^3][^4]
但是,这还不符合所有条件。相反,我应该这样做:
26([^1]134|1[^1]34|11[^3]4|113[^4])
我想我在键入此问题时会更深入地思考,从而回答了自己的问题,但我仍然好奇是否有更好的解决方案,因为这真的很难解决更简单的问题,更不用说键入了。 我既找不到有关此问题的问题,也找不到解决方案,所以我希望将其留在此处以帮助其他有类似问题的人是合适的。