嘿,我想做一個簡單的計算器。計算器應該做負數,所以我想在匹配“ - * /”的地方分割我的輸入字串
輸入例如“5 -3”,所以我只想匹配“ ”,因為“-”是我的第二個數字“-3”的一部分
我目前擁有的正則運算式是:
/(\ |-|\*|\)/
但這給了我“ ”和“-”
uj5u.com熱心網友回復:
我認為這可能有效:
/(?<=[0-9] )[ \-*/](?=-?[0-9] )/
(?<=[0-9] )是“積極的后視”:這意味著它檢查主運算式之間(?<=和)之前的運算式,但它不匹配。在這種情況下,我們正在檢查[0-9]運算子之前是否有一個或多個數字 ( )[ \-*/]匹配四個運算子、-和*中的任何一個/(?=-?[0-9] )是“正向前瞻”:這意味著它檢查主運算式之間(?=和)后面的運算式,但它不匹配。在這種情況下,我們正在檢查運算子后面是否有一個可選的減號 (-?) 后跟一個或多個數字 ([0-9])
重要提示:某些瀏覽器可能不支持積極的后視功能
uj5u.com熱心網友回復:
借用@Viktor 對使用單詞邊界的見解......
/\b[^.\d]/
\b緊跟在字母數字后面(不包括 、-、/、*)。[^.\d]在不是句點或小數的單個字符上拆分。
uj5u.com熱心網友回復:
您可以使用
/([*\/]|\b[- ])/
請參閱正則運算式演示。
模式[*\/]|\b[- ]匹配
[*\/]- 一個*或/字符|- 或者\b[- ]- a-or前面緊跟一個單詞 char。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/522304.html
