我将使用代码开始插图:
A = 'G1(General G1Airlines american G1Fungus )';
Run Code Online (Sandbox Code Playgroud)
在Matlab中使用regexp(或任何其他函数)我想明确地定位:G1,G1A和G1F.
目前,如果我尝试做以下事情:
B = regexp( A, 'G1')
Run Code Online (Sandbox Code Playgroud)
它无法区分G1与G1A和G1F,即我需要强制比较,只找到G1的情况,忽略G1A和G1F.
但是,当我在寻找G1A时,它仍然应该找到G1A的位置.
有人可以帮忙吗?
编辑:A的另一个案例是:
A = 'R1George Service SmalR1Al C&I)';
Run Code Online (Sandbox Code Playgroud)
而这次我需要找到的表达式是R1和R1A.
编辑:我有一个包含A的巨型数组和另一个包含G1,R1等的大向量我需要搜索.
如果你想找到'G1'但不能'G1A'或'G1F'你可以使用
>> B = regexp(A, 'G1[^AF]')
B =
1
Run Code Online (Sandbox Code Playgroud)
这将发现'G1'和^用来指定它应该不匹配包含任何字符[].然后你可以使用
>> B = regexp(A, 'G1[AF]')
B =
12 32
Run Code Online (Sandbox Code Playgroud)
找到'G1A'和'G1F'.