用于java字符串的regex,用于区分包含动态字符的两个不同字符串
对于下面提到的字符串值,我需要两个不同的正则表达式 源文本1:用于java字符串的regex,用于区分包含动态字符的两个不同字符串,regex,Regex,对于下面提到的字符串值,我需要两个不同的正则表达式 源文本1:user.tag.. 源文本2:user.tag. 简单正则表达式应唯一标识上述两个字符串。但不应该有重叠。中包含的值是动态的。动态值可以是除字符以外的任何内容(包括空格) 但是,我使用了下面的正则表达式条件 字符串1的正则表达式:(\Quser.tag\E)\.(\w+)\(\w+)(.*) 字符串2的正则表达式:(\Quser.tag\E)\.(\w+)\.(.*) 字符串2的正则表达式也将与第一个源字符串匹配。我不希望发生这种情
user.tag..
源文本2:user.tag.
简单正则表达式应唯一标识上述两个字符串。但不应该有重叠。
中包含的值是动态的。动态值可以是除
字符以外的任何内容(包括空格)
但是,我使用了下面的正则表达式条件
字符串1的正则表达式:(\Quser.tag\E)\.(\w+)\(\w+)(.*)
字符串2的正则表达式:(\Quser.tag\E)\.(\w+)\.(.*)
字符串2
的正则表达式也将与第一个源字符串
匹配。我不希望发生这种情况,我希望它们是唯一的。根据您的示例,使用以下正则表达式:
^user\.tag\.([^.]+)\.([^.]+)$
^user\.tag\.([^.]+)$
请注意,在一些较旧的Java版本中,最好避免使用它。可能
^(\\Quser.tag\\E)[.]$
?和^(\\Quser.tag\\E)[.][.]$
?是的,这些
必须首先转义。小心
字符。如果要匹配文字
,则必须将其转义为。
。另外,为什么在正则表达式的末尾有(.*)
?这将使它匹配“任何东西”,这是不需要匹配的根本原因。请提供文本示例以及它们应该(或不应该)匹配的方式。抱歉。我现在已经逃脱了。因此,
和这几乎接近我的要求,但是\w
限制我只使用单词和数字。动态值可以是任何东西(包括空格),除了
@stangada好的,没有注册动态值可能是任何东西的部分,我的错。请参阅我的编辑,其中考虑了这一点。