我有以下场景,我需要从字符串中提取RAM值,如下所示:
1GB, 4GB ROM Android 5.1 3G
Run Code Online (Sandbox Code Playgroud)
该RAM值是1GB
Currenlty,我使用以下正则表达式:
(\d+(?:\.\d+)?)\s?([Gg])[Bb]
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,我也得到与该4GB值对应的ROM值.如何编写正则表达式,以便在ROM单词后面不匹配?
谢谢
使用负向前瞻
(\d+(?:\.\d+)?)\s?([Gg])[Bb](?!\s?[Rr][Oo][Mm])
Run Code Online (Sandbox Code Playgroud)
该(?!\s?[Rr][Oo][Mm])部分表示以下字符串不能匹配\s?[Rr][Oo][Mm].
你可能想考虑使用Pattern.CASE_INSENSITIVE标志而不是字符组,顺便说一句.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |