请检查这个正则表达式

时间:2015-02-23 22:23:56

标签: regex

我是编写正则表达式的新手。我做了一些研究,并为字符串提出了这个正则表达式:

  

7.0 GB的高速数据加无限^ Talk&文本(69.00)

我接近正确的事吗?

^(\\d{1}\\.\\d{1} \\s [G.t] \\s (\\d{2}\\.\\d{2})$

2 个答案:

答案 0 :(得分:1)

要按字面意思匹配字符串,您可以使用:

^7\.0 GB of High-Speed Data Plus Unlimited\^ Talk & Text \(69\.00\)$

现在您可以用\ d {x}替换每个数字,其中x是要匹配的位数。

^\d{1}\.\d{1} GB of High-Speed Data Plus Unlimited\^ Talk & Text \(\d{2}\.\d{2}\)$

现在您可以用\ d

替换\ d {1}
^\d\.\d GB of High-Speed Data Plus Unlimited\^ Talk & Text \(\d{2}\.\d{2}\)$

现在你可以用。*替换一些文本以匹配GB和(

)之间的文本
^\d\.\d GB.*\(\d{2}\.\d{2}\)$

现在您可以在GB之后添加\ s,以便在GB

之后必须至少有一个空格字符
^\d\.\d GB\s.*\(\d{2}\.\d{2}\)$

答案 1 :(得分:0)

这取决于语言(有轻微的变化)。 正则表达式(正则表达式)用于查找字符串中的匹配项。 第一部分很接近,但{1}是必要的,不需要分组(使用括号)。
"^(\d{1}\.\d{1}..." --> "^\d\.\d..."(您也可以使用[0-9]代替\d
仅使用.+
就可以使中间部分变得相当简单 最后一部分略有偏离。 Parathesis用于分组,因此要匹配它们,您必须使用escape char()
"...(\d{2}\.\d{2})" --> "...\(\d{2}\.\d{2}\)$"
一开始正则表达式可能令人困惑,但是当你习惯它时会有很多乐趣。对于练习,我尝试考虑几个正则表达式,它们可以匹配电子邮件中的一些随机发送,或文件名或网站上的产品名称。 保持练习。他是一个很好的参考(通过一点点谷歌搜索找到)http://www.zytrax.com/tech/web/regex.htm

^\d\.\d.+\(\d{2}\.\d{2}\)$

如果您有任何疑问,请与我联系。 - 享受。