Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于java字符串的regex,用于区分包含动态字符的两个不同字符串_Regex - Fatal编程技术网

用于java字符串的regex,用于区分包含动态字符的两个不同字符串

用于java字符串的regex,用于区分包含动态字符的两个不同字符串,regex,Regex,对于下面提到的字符串值,我需要两个不同的正则表达式 源文本1:user.tag.. 源文本2:user.tag. 简单正则表达式应唯一标识上述两个字符串。但不应该有重叠。中包含的值是动态的。动态值可以是除字符以外的任何内容(包括空格) 但是,我使用了下面的正则表达式条件 字符串1的正则表达式:(\Quser.tag\E)\.(\w+)\(\w+)(.*) 字符串2的正则表达式:(\Quser.tag\E)\.(\w+)\.(.*) 字符串2的正则表达式也将与第一个源字符串匹配。我不希望发生这种情

对于下面提到的字符串值,我需要两个不同的正则表达式

源文本1:
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好的,没有注册动态值可能是任何东西的部分,我的错。请参阅我的编辑,其中考虑了这一点。