用于选择给定符号之间除字符以外的所有内容的正则表达式

Regex for selecting everything but characters between a given symbol

用于选择除给定符号之间的字符之外的所有内容的正则表达式是什么。

如果给定的符号是 '%' 那么,<simple%name%> 应该产生 <simple>

  • % 匹配字符 %
  • 。匹配任何字符(新行除外)
  • *?查找字符的下一个匹配项

因此下一行首先查找 %,然后查找任何其他字符,直到找到 %

"%.*?%"

举个例子:

String str = "<Simple%Name 1 % 1a%Foo%>";
System.out.println(str.replaceAll("%.*?%", ""));

会产生:

<Simple 1a>

你可以像这样使用 "%(.?)%"*

考虑到您的输入字符串是

,这是我尝试过的示例

simple%name%

String str = "simple%name%";
System.out.println(str.replaceAll("%(.*?)%", ""));

此输出将是

simple