Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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 在字符串中的符号之间查找字符_Java_Regex - Fatal编程技术网

Java 在字符串中的符号之间查找字符

Java 在字符串中的符号之间查找字符,java,regex,Java,Regex,有一个包含主机:端口序列的给定字符串,问题是要比较完全限定的主机名和短主机名。也就是说,他们应该是平等的 示例:“hostName:1234,hostName.sg.com:3214,otherHost:1458” 这里的hostName和hostName.sg.com应该相等。 问题是如何找到“hostName”和“:”sign”之间的字符? 我尝试了+(:),但是,当然,它会选择所有内容,直到最后一个:“怎么样 (?<=hostName).*?: (?试试(?i)主机名[^::]*甚

有一个包含主机:端口序列的给定字符串,问题是要比较完全限定的主机名和短主机名。也就是说,他们应该是平等的

示例:“
hostName:1234,hostName.sg.com:3214,otherHost:1458

这里的
hostName
hostName.sg.com
应该相等。 问题是如何找到“
hostName
”和“:”sign”之间的字符? 我尝试了
+(:)
,但是,当然,它会选择所有内容,直到最后一个:“

怎么样

(?<=hostName).*?:

(?试试
(?i)主机名[^::]*
甚至(字符串文字)
“(?i)\\bhostName[^:]*”
Guava有一个很好的映射拆分器(
Splitter.on(',')。带有KeyValueSeparator(':')。拆分(“主机名:1234,主机名.sg.com:3214,其他主机:1458”)
),请参阅,这取决于您要对找到的字符执行什么操作,即是否要拆分或提取字符等。修复表达式的一种方法(尽管我不确定它是否符合您的需要,因为缺少有关如何使用它的信息)可能是让它不情愿:
+?(:)
。基本上,我想提取我发现的片段试图用一个正则表达式来解决这一问题是不合理的。这可能是可能的,但它可能会变得模糊和模糊。帮你自己一个忙,然后将字符串放在一个集合中(或使它们成为映射中的键)。