Java 正则表达式前缀,仅捕获奇数个实例?
我想捕获两个百分比“%”内出现的所有互斥字符串。如果它介于两个百分比之间,它将被标记为变量,以便在我的解析过程中替换 如果我有这个输入字符串Java 正则表达式前缀,仅捕获奇数个实例?,java,regex,prefix,Java,Regex,Prefix,我想捕获两个百分比“%”内出现的所有互斥字符串。如果它介于两个百分比之间,它将被标记为变量,以便在我的解析过程中替换 如果我有这个输入字符串 TLA%HRN%767%BRN%DFS 它应该只返回“HRN”和“BRN”,而不是“HRN”、“767”和“BRN” 我不想要767,因为它从HRN和BRN中窃取了百分比字符。我想我只想匹配前缀中有奇数个百分比字符的位置 这是我正在进行的正则表达式工作。它捕获了三个实例,而不仅仅是我想要的两个 (?<=\b[A-Za-z1-9]+%).+?(?=%
TLA%HRN%767%BRN%DFS
它应该只返回“HRN”和“BRN”,而不是“HRN”、“767”和“BRN”
我不想要767,因为它从HRN和BRN中窃取了百分比字符。我想我只想匹配前缀中有奇数个百分比字符的位置
这是我正在进行的正则表达式工作。它捕获了三个实例,而不仅仅是我想要的两个
(?<=\b[A-Za-z1-9]+%).+?(?=%)
(?您可以使用此正则表达式进行匹配:
%[^%]+%
之所以有效,是因为一旦%
在%HRN%
中被消耗,后续%
无法返回767
我没有看到错误。当我使用regex测试时,%.*?%
只捕获“HRN”和“BRN”。示例:哇,我把那个复杂化了,不是我。是的,但有时我们都会这样做。简短而甜蜜,+1:)