java - 使用正则表达式从字符串中提取特定数据

标签 java regex

我想捕获匹配某些特定模式的多个字符串, 例如我的字符串是

String textData = "#1_Label for UK#2_Label for US#4_Label for FR#";

我想在两个 # 之间获取字符串,这两个字符串与 UK

的字符串匹配

输出应该是这样的 如果匹配字符串是 UK 而不是
输出应该是 1_Label for UK

如果匹配字符串是 label 而不是
输出应为 1_Label for UK,2_Label for US4_Label for FR 如果匹配字符串是 1_ 而不是

输出应该是 1_Label for UK

我不想通过数组列表提取数据,提取应该不区分大小写。

你能帮我解决这个问题吗?

问候, 阿希什·米什拉

最佳答案

您可以使用此正则表达式进行搜索:

#([^#]*?Label[^#]*)(?=#)

Label 替换为您的搜索关键字。

RegEx Demo

Java 模式:

Pattern p = Pattern.compile( "#([^#]*?" + Pattern.quote(keyword) + "[^#]*)(?=#)" );

关于java - 使用正则表达式从字符串中提取特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26272652/

相关文章:

c# - 从解析的字符串构建多级数组数组/锯齿状数组

javascript - 如果月份无效,如何从 DOB 计算年龄?

java - 在 Akka actor 中处理异常的最佳实践

带有 CSRF post Json 403 Forbidden 的 Apache 的 Java 客户端

java - 在 Tomcat 启动后启动监听器?

javascript - 如果以字符开头,正则表达式不匹配?

javascript 检查字符串末尾的特殊字符

java - SQLite:选择时间在范围内的行

Java 字符串比较

jQuery、匹配和正则表达式