我有一个字符串,我想从中删除字符串Input! + word + digits
和Calc! + word + digits
。我也包括了我的尝试。
Input : IF(Input!B34 + Calc!B45)
Output : Input!B34 Calc!B45
我的尝试:
Pattern findMyPattern = Pattern.compile("Input!\\w\\d|" + worksheetName+ "!.+?"); Matcher foundAMatch = findMyPattern.matcher(input); HashSet hashSet = new HashSet(); while (foundAMatch.find()) { String s = foundAMatch.group(0); hashSet.add(s); }
我应该使用什么正则表达式?我尝试过使用其中的一些。但我不是他们的专家。一些想法会很有用。
答案 0 :(得分:3)
您可以使用此正则表达式:
"(?:Input|Calc)![a-zA-Z]\\d+"
说明:
(?:Input|Calc) // Match `Input or Calc`
! // Followed by !
[a-zA-Z] // Followed by an alphabetical character
\\d+ // Then digits.
并将其与Matcher#find
一起使用,然后将matcher.group()
添加到Set
。