我有一个类似的字符串
字符串1:abcdefgh{EID##00000000001234567890##EID}khkgfhjjh
字符串2:qwertyuiop{EID##00000000001234567890##EID}asdaff
我希望输出1234567890,如果在String1中存在EID##...##EID
,如果不存在则会在字符串2中搜索。如果两个结果都不存在则将为00000000
但我只能使用Spring Expression语言。
我尝试过类似的东西:
${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')
但问题是我的字符数限制为350.(这是523个字符)有更简单的方法吗?
我试过这个,它的工作。
($ {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')