REGEX 排除数字前是否有破折号以及是否在其他字符串中

REGEX exclude if there's a dash before number and if inside other string

我一直在尝试编写一个与标题中所述完全相同的正则表达式。我需要找到所有出现的 xA、xkA 或 xmA(以及变体,例如 xkA 或 xkA)以便稍后格式化这些安培:xA、xkA、xmA。

不幸的是,我有正则表达式 selects number+A 每当它找到它时:

F-2A WACEGF2AOKR 10米交流电

F-3A WACEGF3AOKR 10k A AC

C-7A WACEGC7AOKR 20米A

我的正则表达式:

([0-9]+)([m|k])? ?A

我在网上找到了一些解决方案:

[^- a-zA-Z]([0-9]+)([µ|µ|m|M|k|G|]) ?A

但是在 Dreamweaver 中 运行 时它失败了(我必须在 DW 中使用它,它是更大命令的一部分) - 它 "eats" 是反向引用中字符串的一部分,例如。 “1000”中的“10”

已编辑:

\b([0-9]+)([µmMkG]|µ)\s*A 

(?<![0-9])([0-9]+)([µmMkG]|&micro;)\s*A

第一个select如下:

第二个 select 什么都没有:(

请注意,我尽量不删除数字前的字符,即 >/ 如果我使用以下内容,它们将被删除:

您可以使用以下正则表达式:

(^|[^\w-])\b([0-9]+)([µmMkG]|&micro;)? ?A

替换时,请注意,您可以使用 $ + 标识组的数字来访问使用捕获组捕获的文本。例如。 (^|[^\w-]) 文本可通过 </code> 访问,<code>([0-9]+) 文本可通过 </code> 访问,<code>([µmMkG]|&micro;) 可通过 </code> 访问。</p> <p>参见<a href="https://regex101.com/r/LcLTS3/8" rel="nofollow noreferrer">regex demo</a>。</p> <p><strong>详情</strong></p> <ul> <li><code>(^|[^\w-]) - 第 1 组:字符串开头或除字母、数字、下划线和 - 之外的任何字符

  • \b - 单词边界
  • ([0-9]+) - 第 2 组:一个或多个数字
  • ([µmMkG]|&micro;)? - 第 3 组(可选):µmMkG&micro;
  • ?A- an optional space and thenA`.