我試圖用this鏈接生成一個在Java中使用的正則表達式。正則表達式問題來解析一個字符串
我可以有以下類型的字符串。
1. customer calls <function_name> using <verb> on <uri> with <object>
2. customer calls <function_name> using 'POST' on <uri> with <object>
3. customer calls 'create' using 'POST' on <uri> with <object>
4. customer calls 'create' using 'POST' on <uri>
正如你所看到的,with
之後的最後部分在我的情況下是可選的。
我實現了下面的正則表達式。
.+call[s]?.+(\'\w+\'|<\w+>).+using.+(\'\w+\'|<\w+>).+on.+(\'\w+\'|<\w+>).*(with.+(\'\w+\'|<\w+>))?
但是,當我給串3,我得到的輸出作爲'create','POST',<object>, null, null
而不是'create','POST',<uri>, <object>
。 當我給字符串4時,輸出是'create','POST',<uri>, null, null
而不是'create','POST',<uri>
。
沒有(with.+(\'\w+\'|<\w+>))?
正則表達式工作正常字符串4. 我怎樣才能改變這最後一部分,我需要從with
可選使部分?