我是regex的新手,所以我很难编译自己的模式。
基本上我正在从我的Android手机上读取LogCat,并试图将这个字符串分解为能够在TextView中显示它
这是我尝试令牌的实际字符串。 “07-06 12:18:45.790:W / dalvikvm(571):TaintLog:OSNetworkSystem.write(91.121.171.39)接收到标记为0x400 data = [POST / HTTP / 1.1”
能够使用scanner方法检索“Tag”之后的数字,但现在我需要从OSnetworkSystem.Write(xxx.xxx.xxx.xxx)中提取IP地址
任何人都可以向我提供一些有关如何使用IP地址的提示。
答案 0 :(得分:1)
好吧,对于正则表达式部分,我可以提供帮助。
正则表达式:
([0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3})
将匹配给定字符串中的任何IP地址。
对于RegExp,我使用的网站http://rubular.com/对我的工作流程非常有帮助。我可以抛出任意数量的“测试用例”并开始编写正则表达式代码。
根据以下评论进行编辑。
而不是重新发明轮子。我在IPv4 Regex上发现了一篇很棒的文章: How do I write a regular expression that matches an IPv4 dotted address?
基本上说:
/^0*([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])\.0*([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])\.0*([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])\.0*([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])$/
漫长而复杂。但是在写完之后,应该让你对它的实际情况有一个很好的理解。
根据我的经验,更复杂的&我们对正则表达式的成功率感到满意,它可能会越失败。我建议永远不要依赖正则表达式来获取关键数据 ...找另一种方式,总是有:)