Regex 如果元素以数字开头,则don';不要选择结束号码

Regex 如果元素以数字开头,则don';不要选择结束号码,regex,Regex,我正在尝试为杜比数字频道选择文本,缩写为DD,DDP,DD+,等等 我遇到的问题是,如果元素已经以5.1或5,(十进制或整数)开头,我不希望它在后面选择任何数字,因为它可能会意外选择属于不同元素的数字 正则表达式 我使用\040作为空白,但我更愿意使用\s,但它选择了多行 我尝试过向前看和向后看,但都没有成功 要全部选中吗 DDP 5.1 DD+ 5.1 DD 5.1 DDP5.1 DD+5.1 DD5.1 5.1 DDP 5.1 DD+ 5.1 DD 5.1DDP 5.1DD+ 5.

我正在尝试为杜比数字频道选择文本,缩写为
DD
DDP
DD+
,等等

我遇到的问题是,如果元素已经以
5.1
5
,(十进制或整数)开头,我不希望它在后面选择任何数字,因为它可能会意外选择属于不同元素的数字


正则表达式

我使用
\040
作为空白,但我更愿意使用
\s
,但它选择了多行

我尝试过向前看和向后看,但都没有成功


要全部选中吗

DDP 5.1
DD+ 5.1
DD 5.1
DDP5.1
DD+5.1
DD5.1
5.1 DDP 
5.1 DD+
5.1 DD
5.1DDP
5.1DD+
5.1DD
要全部选中吗

DDP 5.1
DD+ 5.1
DD 5.1
DDP5.1
DD+5.1
DD5.1
5.1 DDP 
5.1 DD+
5.1 DD
5.1DDP
5.1DD+
5.1DD
不希望选择
5.1
结尾

5.1 DDP 5.1
5.1 DD+ 5.1
5.1 DD 5.1
5.1DDP5.1
5.1DD+5.1
5.1DD5.1
不希望选择结束的单个编号
5

5.1 DDP 5
5.1 DD+ 5
5.1 DD 5
5.1DDP5
5.1DD+5
5.1DD5
您可以使用匹配的或以下格式之一:

\b(?:DDP|DD\+?)\s?5\.1|5\.1\s?(?:DDP|DD\+?)
  • \b
    单词边界
  • (?:
    非捕获组
    • DDP | DD\+?
      匹配DPP或DD和可选的
      +
  • 关闭组
  • \s?5\.1
    匹配意见空格字符和
    5.1
  • |
  • 5\.1\s?
    匹配
    5.1
    和可选空白字符
  • (?:
    非捕获组
    • DDP | DD\+?
      匹配DPP或DD和可选的
      +
  • 关闭组

带小数或整数:

\b(?:DDP|DD\+?)\s?\d+(?:\.\d+)?|\d+(?:\.\d+)?\s?(?:DDP|DD\+?)

\b(\d+(?:\。\d+)\s?(DD(?:p\+)\s?(?(1)|([。\s]?\d+(?:\。\d+)?\b)
?请看。感谢您对一个相当复杂的问题的清晰陈述,特别是包含了大量的示例。您的解决方案和Wiktor的工作都很好,我只是在做更多的测试。