正则表达式:匹配算术运算符和双字符运算符

时间:2015-07-09 12:06:52

标签: regex matlab

我试图在字符串中匹配Matlab运算符。这些运算符可能是"+", "-", "*", "/", ".*", "./",等。(我将运算符括在"中以表示Matlab中有两个字符的运算符。)

字符集对单字符运算符没有任何问题。例如,此正则表达式[\+\-\*\/]在以下测试字符串中匹配单字符运算符:

myVar = 1.0 * 5 + 1 / 2 + a .* b + a ./ b;

当我尝试包含双字符运算符时出现问题。以下表达式[\+\-\*\/\.\*]也与.中的1.0匹配。

作为regexps的新手,我尝试在字符集中包含一个像[\+\-\*\/(\.\*)]这样的组,但它不起作用。

任何想法如何在字符集中包含双字符元素?

2 个答案:

答案 0 :(得分:0)

你需要将两个char模式放在一个组中。

(\.[\/*]|[+*\/-])

DEMO

答案 1 :(得分:0)

如果您希望一次匹配多个字符,则需要使用替换:

(?:\.[*\/]|[+*\/-])

Demo

(?: ... )语法是创建一个没有内存捕获的组。

相关问题