Comment définir l'expression régulière de expression.please mathématique définir une expression régulière commune pourdans la définition expression régulière
5+4
5-3
5*6
6/2
Comment définir l'expression régulière de expression.please mathématique définir une expression régulière commune pourdans la définition expression régulière
5+4
5-3
5*6
6/2
^\d+[+*\-/]\d+$
'+' n'est pas un méta-caractère à l'intérieur d'une classe de caractères - ne doit pas être échappé. '-' est un méta-caractère à l'intérieur d'une classe de caractères et doit être échappé sauf s'il s'agit du premier ou du dernier caractère de la classe. '^ \ d + [+ */-] \ d + $' ou '^ \ d + [+ * \ - /] \ d + $' ou '^ \ d + [- + * /] \ d + $' – Amarghosh
vous avez raison:) mon mauvais –
'(\ d) +' va correspondre et capturer un chiffre à la fois, ainsi seul le dernier chiffre est retenu. Si vous voulez capturer le nombre entier, placez le signe plus à l'intérieur des parens: '(\ d +)'; Si vous ne voulez pas le capturer, débarrassez-vous des parens car ils créent juste beaucoup de travail supplémentaire pour le moteur regex. –
Ok, voici un qui pourrait être un peu plus compliqué que vous avez besoin (hé, c'est une expression régulière!)
/^\s*-?\d+(?:\.\d+)?(?:\s*[+*\/\-]\s*-?\d+(?:\.\d+)?)+(?:\s*=\s*-?\d+(?:\.\d+)?)?$/
il permet une ou plusieurs opérations, des nombres décimaux, et éventuellement un « égal à » une partie à la fin.
5 + 7
3 * 2 - 8
80.31 + 12/6
5 * 7 - 2 = 33
La spécification est vague, mais voici une expression rationnelle lisible utilisant une approche méta-regexing en Java.
String regex =
"num(?:opnum)*"
.replace("op", "\\s*[*/+-]\\s*")
.replace("num", "\\s*[+-]?\\d+(?:\\.\\d+)?\\s*");
String[] tests = {
"5+4", // true
"5 - 3", // true
"5 * 6 - 4", // true
"3.14159 = 0", // true
"A = B", // false
"5+ -4", // true
"5 * +4", // true
"5++5", // true
"5+++5", // false
"5+5+" // false
};
for (String test : tests) {
System.out.println(test + " " + test.matches(regex));
}
Les nombres peuvent inclure une partie décimale facultative, et un signe +/-
. Il pourrait y avoir plusieurs égalités.
l'expression mathématique peut-elle être plus compliquée ou juste numéro d'opérateur de numéro? –
vous voulez autoriser des espaces entre les nombres et les opérateurs? les décimales sont-elles supportées? – Amarghosh
Votre "question" manque beaucoup de détails. Qu est ce que tu veux faire avec? avez-vous besoin de capturer une partie de l'expression ou de la diviser? Lorsque vous écrivez des questions, vous devriez essayer d'ajouter autant de détails que possible, aidez-nous à vous aider. –