我是编写正则表达式的新手。我做了一些研究,并为字符串提出了这个正则表达式:
7.0 GB的高速数据加无限^ Talk&文本(69.00)
我接近正确的事吗?
^(\\d{1}\\.\\d{1} \\s [G.t] \\s (\\d{2}\\.\\d{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}\)$
如果您有任何疑问,请与我联系。 - 享受。