当前位置: 首页 > 知识库问答 >
问题:

如何从这个正则表达式模式中获得以下用例的匹配?

鲜于念
2023-03-14

我有正则表达式来匹配以下模式,

链接到用例:https://regex101.com/r/wnp1k4/1

如何通过修改正则表达式获得相同的匹配?请帮助。

(?:^|(?<=[\D;a-zA-Z(),.:;?!"'`>]))(?!000|666|9)(?<![Oo][Rr][Dd][Ee][Rr].)(?<![Oo][Rr][Dd][Ee][Rr]..)(?<![Oo][Rr][Dd][Ee][Rr]...)(?<![Oo][Rr][Dd][Ee][Rr].[Nn][Uu][Mm][Bb][Ee][Rr].)(?<![Oo][Rr][Dd][Ee][Rr].[Nn][Uu][Mm][Bb][Ee][Rr]..)(?<![Oo][Rr][Dd][Ee][Rr].[Nn][Uu][Mm][Bb][Ee][Rr]...)(?<![Xx])\d{3}[ -.=\n\r]{0,10}(?!00)\d{2}[ -.=\n\r]{0,10}(?!0000)\d{4}(?:$|(?=[\Da-zA-Z(),.:;?!"'`<= ]))

如果'X或x'在数字之前,订单号不应该被检测到。所以这工作正常。

X123456789

X123456789

x123-456-789

X123-456-789

123-456-789

需要修改正则表达式模式以获得如下所示的医嘱号列表的匹配项…以及单词(医嘱号)应不区分大小写。

订单号123-456-789

订单号123-456789

订单号123456789

123-456789

123456789

订单号-123456787

订单号- 123456789

订单号#123456789

订单号任意字符123456789

共有3个答案

申嘉慕
2023-03-14

试试这个。

^([^x]|(order\s?number\s?)(\s?[-|#]?\s?))(anysplcharacter)?([\d-]+)$

还有别的情况吗?

仲孙信瑞
2023-03-14

<代码>/(?

const multilineSample = `x123456789
X123456789
x123-456-789
X123-456-789

123-456-789

ordernumber123-456-789
order number123-456789
order number 123456789

123-456789
123456789

ordernumber-x123456787

ordernumber-123456787
ordernumber - 123456789
ordernumber #123456789
ordernumber *anysplcharacter*123456789
ordernumber !@#$%^&123456789

ordernumber !@#$%^&x123456789`;

const regXOrderNumber =
  // see ... [https://regex101.com/r/wnp1k4/6]
  /((?<key>order\s*number).*)?(?<!x)(?<value>\d{9}|\d{3}-\d{6}|\d{3}-\d{3}-\d{3})/gim;

console.log(
  'all results each with its mapped named capture group ...',
  Array.from(
    multilineSample.matchAll(regXOrderNumber)
  )
  .map(({ groups }) => groups)
);
css prettyprint-override">.as-console-wrapper { min-height: 100%!important; top: 0; }
祁聪
2023-03-14

将我的评论转换为答案,以便将来的访问者可以轻松找到解决方案。

您可以使用此正则表达式

(?<!\d)(?!000|666|9)(order\W?number)?\W*(?<!x)\d{3}[ .=-]{0,10}(?!000)\d{3}[ .=-]{0,10}(?!000)\d{3}

RegEx演示

正则表达式详情:

  • <代码>(?
 类似资料:
  • 您好,请编写以下正则表达式。 我想修改现有的正则表达式,以便下面的用例可以匹配,现在只有少数匹配。 注: 如果数字前面有“X”或“X”,并且该零件工作正常,则不应检测到9位订单号 用例: 这是一个需要匹配的用例列表 https://regex101.com/r/iFiwx5/1 示例:这些是需要与正则表达式匹配的用例。 123 45 6789 这方面的任何帮助都会非常好。

  • 问题内容: 如何找到与Java中的正则表达式匹配的所有子字符串?(类似于.Net中的Regex.Matches) 问题答案: 创建一个Matcher并用于将其放置在下一个匹配项上。

  • 正则表达式如何匹配出这个字符串'calc(100vh - 420px)'中的数字420

  • 有没有一种方法可以在python中编写与以下格式的字符串匹配的正则表达式: 或 在这里,$=表示零或更多的空白可以存在 :来自字符串的固定子集的字符串['feat','fix','docs','断'] :最大长度为n的字符串 :最大长度为m的字符串 前缀应该始终是一个字符串,之后是一些最大q长度的字母数字字符 注意:我们不能省略像应该使用与下面示例中所示完全相同的格式: feat(feat new

  • 有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。

  • 问题内容: 是的,您没看错。我需要能够从正则表达式 生成 随机文本的内容。因此,文本应该是随机的,但要与正则表达式匹配。看来它不存在,但我可能是错的。 仅举一个例子:该库将能够以“ ”作为输入,并生成诸如以下示例: abc abbbc bac 等等 更新:我自己创建了一些东西:Xeger。查看http://code.google.com/p/xeger/。 问题答案: 我刚刚创建了一个库来进行此操