java - 正则表达式 - 获取两个 % 字符之间的内容,没有任何包含空格的匹配项
问题描述
我试图在两个%
不包含空格的字符之间获取内容。
这是我到目前为止所拥有的:(?<=\%)(.*?)(?=\%)
我想我需要在\S
某个地方使用。我仍然无法弄清楚如何使用它。总是有两种情况:
- 我仍然得到所有这些,即使是带有空格字符的
- 我找不到任何匹配项
一个字符串看起来像这样:
占位符称为 %Test%! 现在您可以将它与真正的占位符一起使用。但是,如果我使用更多的 %Test2% 占位符,它将不再起作用:/。%Test3% 糟透了!
解决方案
如果我正确理解你的问题,那么%(\w+)%
就会为你做
String str = "The placeholder is called %Test%! Now you can use it with real placeholders. But if I use more %Test2% placeholders, it won't work anymore :/. %Test3% sucks cause of that!";
String regex = "%(\\w+)%";//or %([^\s]+)% to fetch more special characters
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
输出:
Test
Test2
Test3
推荐阅读
- java - 当未经授权的用户尝试使用未知用户名和密码登录时,spring-security 项目崩溃
- tensorflow - TensorFlow 中的 np.resize 等价物
- dart - List.removeRange() 方法如何以及为什么会影响其他变量?
- java - 重写@PostConstruct 方法时,是否在创建子项时调用父项中的方法?
- javascript - 正在将我的类组件重构为功能性组件,并且在使用 useEffect 时遇到了一个非常困难的问题
- vue.js - 我可以有一个网站,它也可以作为带有 officejs 的 excel 网络插件
- sql-server - 在 SSIS 中移动尾随破折号 (-) 的最佳方式
- java - PDFBox - 从页面中删除图像并在不同位置添加相同的图像
- azure - 适用于 JSON 的 Azure 数据工厂 ADF 架构验证
- c++ - C ++:尝试打印指针值时程序崩溃