繁体   English   中英

正则表达式 - 在角色之前匹配模式

[英]Regex - Match a Pattern Before a Character

我目前正在c#中构建一个玩具汇编程序(通过计算系统元素书)。

我需要匹配一个非常简单的模式,我认为这是学习一些正则表达式的好时机,但我正在努力!

在以下示例中,我只想匹配'='之前的字母

M =甲

d = M

MD = A

A = d

AD = M

AMD = A

我想出了以下内容:

([A-Z]{1,3})=

然而,这也匹配我不想要的'='。

我也尝试过:

([A-Z^\=]{1,3})=

但我仍然有同样的问题 - 它也匹配'='符号。

我正在使用这个网站来测试我的正则表达式。

任何帮助将非常感激。 先感谢您。

你需要一个积极的先行断言

([A-Z]{1,3})(?==)

你想要的是一个零宽度,超前断言。 你做:

(Match this and capture)(?=before this)

在您的情况下,这将是:

([A-Z^]{1,3})(?==)

以下内容将对“=”之前的所有内容进行分组。

([^=]*)=([^=]*)

它读起来像这样:

匹配任何数量的字符不是“=”,后跟“=”,然后任何数量的字符不是“=”。

您还可以将等号放入非捕获区域(?:...)

([ADM]{1,3})(?:=)

自从我完成本书的这一章以来,我已经有点了,但我认为既然你需要表达式的两个部分,我对=进行了分割,得到了myArray [0] == M,myArray [1] == A

我需要在'='之前匹配每个角色,所以我想出了这个

.*(?==)=

匹配'='之前的每个字符但不匹配“=”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM