RegEx捕获字符空间字符字符组

时间:2015-06-28 21:36:14

标签: regex matlab

我正在尝试编写一个RegEx表达式来查找以下内容:

空格字符前面带有az或AZ或0-9或者)后跟两个字符,这些字符属于以下类别az或AZ或0-9或 - 或(;即 char1-space-char2-char3 < /强>

char1 = [0-9 a-z A-Z )]
char2 = [0-9 a-z A-Z - ]
char3 = [0-9 a-z A-Z (]

例如:

cos(x)+ sin(x){S} -0.3 * cos(x){S} k * sin(x) - z0 {S} ke-1 {S} -ke-3

其中{S}是我想要捕捉的空格

我是RegEx的新手,从我在网上找到的东西,我需要使用前瞻和后面看,但我不知道如何确保如何捕捉 char-space-char-char 小组。

到目前为止,我有这个,但它根本不起作用

[\w\d\)]([ ]{1})[\w\d-]

我希望这是有道理的。

1 个答案:

答案 0 :(得分:0)

如果你想使用环绕断言,那将处理你需要的重叠。
只需使用相同的结构,但在空间之前/之后用环顾四周包裹 句法。

(?i)(?<=[\da-z)])[ ](?=[\da-z-][\da-z(])

扩展:

 (?i)                       # Case insensitive
 (?<= [\da-z)] )            # Lookbehind, alnum or ')'
 [ ]                        # Consume space
 (?= [\da-z-] [\da-z(] )    # Lookahead, alnum or '-' followed by alnum or '('