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

时间:2018-09-13 11:58:50

标签: regex dreamweaver

我一直在尝试编写一个正则表达式,其功能与标题中所述完全相同。我需要找到xA或xkA或xmA的所有出现情况(以及x k A或xk A的变化形式),以便以后将其安培数格式化为:x A,x kA,x mA。

不幸的是,有了正则表达式,只要找到它,它就会选择数字+ A:

F- 2A WACEGF 2A OKR 10m A AC

>

F- 3A WACEGF 3A OKR 10k A AC

>

C- 7A WACEGC 7A OKR 20m A

我的正则表达式:

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

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

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

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

编辑:

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

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

第一个选择如下: enter image description here

第二个没有选择任何内容:(

请注意,我尝试不删除数字前的字符,即如果我使用以下字符,则将其删除:>/

enter image description here

1 个答案:

答案 0 :(得分:1)

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

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

替换时,请记住,您可以使用$ +标识组的数字来访问捕获组捕获的文本。例如。通过(^|[^\w-])访问$1文本,通过([0-9]+)访问$2文本,通过([µmMkG]|&micro;)访问$3

请参见regex demo

详细信息

  • (^|[^\w-])-第1组:字符串开头或除字母,数字,下划线和-之外的其他任何字符
  • \b-单词边界
  • ([0-9]+)-第2组:一个或多个数字
  • ([µmMkG]|&micro;)?-第3组(可选):µmMkG&micro;
  • ?A - an optional space and then A`。