簡體   English   中英

在Java中使用正則表達式捕獲變量

[英]Capturing variables with Regular Expression in java

我一直試圖在程序中捕獲指定的變量,該程序還將評估簡單數學表達式的有效性。

假設聲明的變量是a和bc。

我想出了這樣的東西

^[+-][(a)(bc)]+[(a)(bc)]*+([+-x/][(a)(bc)]+[(a)(bc)]*)*$

我的目的是驗證像

+a-bc-a
-bc+a-a

但似乎此表達式也返回true

-b+a+ab

我不希望因為b未指定為變量。 任何幫助將不勝感激。

^[+-](?:(a)|(bc))+(?:(a)|(bc))*+(?:[+-x\/](?:(a)|(bc))+(?:(a)|(bc))*)*$

[]是字符類,並且匹配單個字符,而不是交替字符。 您的正則表達式也遭受災難性的回溯。 參見演示。

您也可以將其減少為

^[+-](?:a|bc)+(?:[+-x\/](?:a|bc)+)*$

參見演示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM