我有一个类似
的字符串字符串1:qwertyuiop{EID##00000000001234567890##EID}asdaff
字符串2:EID##...##EID
我想要输出1234567890,如果String1中存在${String1}.indexOf('EID##') != -1 AND ${String1}.indexOf('##EID') != -1 AND (${String1}.indexOf('##EID') - ${String1}.indexOf('EID##'))> 5
?
(${String1}.substring(${String1}.indexOf('EID##')+5,${String1}.indexOf('##EID'))).replaceAll("^0+", "")
:
(${String2}.indexOf('EID##') != -1 AND ${String2}.indexOf('##EID') != -1 AND (${String2}.indexOf('##EID') - ${String2}.indexOf('EID##'))> 5
?
(${String2}.substring(${String2}.indexOf('EID##')+5,${String2}.indexOf('##EID'))).replaceAll("^0+", "")
:
'0000000000')
,如果不存在,它将在字符串2中搜索。如果两个结果都不存在,则结果为00000000
但是我只能使用Spring Expression语言。
我尝试过类似的事情:
{{1}}
但是问题是我的字符数限制为350。(这是523个字符) 有没有更简单的方法?
答案 0 :(得分:0)
我尝试了这个,它的工作原理。
($ {String1}匹配'。 EID ##。 ## EID。*')吗? ($ {String1} .substring($ {String1} .indexOf('EID ##')+ 5,$ {String1} .indexOf('## EID')))。replaceAll(“ ^ 0+”,“” ): ((($ {String2}匹配'。 EID ##。 ## EID。*')?($ {String2} .substring($ {String2} .indexOf('EID ##')+ 5,$ {String2} .indexOf('## EID')))。replaceAll(“ ^ 0+”,“”):'000000000')