Java 使用正则表达式从字符串中提取特定数据
我想捕获多个匹配某些特定模式的字符串, 例如,我的字符串是Java 使用正则表达式从字符串中提取特定数据,java,regex,Java,Regex,我想捕获多个匹配某些特定模式的字符串, 例如,我的字符串是 String textData = "#1_Label for UK#2_Label for US#4_Label for FR#"; 我想得到两个字符串之间的字符串,它与英国的字符串匹配 输出应该是这样的 如果匹配字符串为UK,则 输出应为英国的1_标签 如果匹配字符串的标签大于 输出应为1_标签(英国)、2_标签(美国)和4_标签(法国) 如果匹配字符串大于1 输出应为英国的1_标签 我不想通过数组列表提取数据,提取应该不区分大小
String textData = "#1_Label for UK#2_Label for US#4_Label for FR#";
我想得到两个字符串之间的字符串,它与英国的字符串匹配
输出应该是这样的
如果匹配字符串为UK,则
输出应为英国的1_标签
如果匹配字符串的标签大于
输出应为1_标签(英国)、2_标签(美国)和4_标签(法国)
如果匹配字符串大于1
输出应为英国的1_标签
我不想通过数组列表提取数据,提取应该不区分大小写
你能帮我解决这个问题吗
问候,,
Ashish Mishra如果数据总是在两个哈希之间,请尝试这样的正则表达式:?i.*您的匹配。*其中您的匹配将是UK、label、1等 然后将此表达式与Pattern和Matcher类结合使用
如果要匹配多个字符串,则需要使用环视方法和不情愿的修饰符(例如?如果数据始终位于两个哈希之间),从匹配中排除哈希,请尝试以下正则表达式:?i.*您的\u匹配。*其中您的\u匹配将是UK、label、1等 然后将此表达式与Pattern和Matcher类结合使用
如果要匹配多个字符串,则需要使用环视方法和不情愿的修饰符(例如?)从匹配中排除哈希,您可以使用此正则表达式进行搜索:
#([^#]*?Label[^#]*)(?=#)
用搜索关键字替换标签
Java模式:
您可以使用此正则表达式进行搜索:
#([^#]*?Label[^#]*)(?=#)
用搜索关键字替换标签
Java模式:
试试这个。抓取截图。看演示
试试这个。抓取截图。看演示
我用下面的模式解决了这个问题
(?i)([^#]*?us[^#]*)(?=#)
非常感谢Anubhava、VKS和Thomas的回复
问候,,
Ashish Mishra我用以下模式解决了这个问题
(?i)([^#]*?us[^#]*)(?=#)
非常感谢Anubhava、VKS和Thomas的回复
问候,,
Ashish Mishra如果匹配字符串为UK/label/1,我不明白您的意思。从我看到的情况来看,输入字符串中包含所有这三个字符串。如果匹配字符串是UK/label/1,我不理解您的意思。据我所见,输入字符串中包含所有这三个字符串。感谢托马斯的快速回复。感谢托马斯的快速回复。感谢VKS的快速回复。感谢VKS的快速回复。感谢Anubhava的快速回复。这也是我的答案。最好不要把它作为一个答案,然后投票赞成/接受对你有用的答案。这也正是我的答案。最好不要把它作为答案贴出来,然后投票赞成/接受对你有用的答案。