2015-08-26 115 views
1

我是新來的正則表達式和目前正在建設中Java.I Web應用程序有以下要求來驗證公式:正則表達式的表達式驗證公式

  1. 公式必須先從「T」
  2. 公式可以包含以下的字符集:
    • 位:0 - 9
    • 阿爾法:A - Z
    • 算:*,/,+, -
    • 分隔符:;
  3. 操作者必須總是後跟數字
  4. 的字符「T」必須總是後跟數字或α。
  5. 分隔符後面必須緊跟「T」。
  6. 字符「M」後面必須跟一個操作符。

我設法建立下面的表達式如下所示:

^[T][A-Z0-9 -- \\+*;]* 

但我不知道如何使用正則表達式上面添加以下驗證:

  1. 操作員必須總是後面跟着一個數字
  2. 字符「T」後面必須跟一個數字或一個字母。
  3. 分隔符後必須緊跟「T」
  4. 字符「M」後面必須緊跟一個操作符。

有效樣本:TA123;T1*2/32M+

無效樣本:T+qMg;Y

+3

什麼投入將匹配這些條件? – vks

+0

TA123:T + 1 * 2/32M + - 有效 – user1999453

+2

這怎麼可能是有效的......在'T'後需要'alpha'或'digit' – vks

回答

0

我們缺少了一點信息,充分了解您想要什麼。幾個例子會有所幫助。

現在,一個小的正則表達式:
^(T[A-LN-Z0-9]*M[+-/*][0-9];?)*

編輯:

^(T([A-LN-Z0-9]*M?[+\-/*]?[0-9]?)*;?)+

https://regex101.com/r/hT7aP2/1

: 從我的理解,你正在尋找這應該是接近

這個正則表達式強制該行以T開頭,然後有0到多個[A-LN-Z0-9]範圍,這意味着所有的alpha和數字除了M.
然後它需要有一個M後跟一個運算符,範圍在[+ -/*] *(非常多+, - ,和,除了 - 和/是特殊字符,所以我們告訴正則表達式我們想要這些角色,而不是他們應該具有的含義)
然後它繼續一到多個數字,並以「;」結尾。那可能會或可能不會。

,一切都在括號內可從0反覆幾次

我本來希望的要驗證...例如,我們不知道是什麼的例子,如果行必須結束與一個 」;」

根據您的需要,使用字符「;」分割要驗證的字符串。並驗證每個生成的字符串與該正則表達式可能工作