例如具体的指标,如果我有一个电话号码,我想看看如果任的最后两位数字的含有7.我能做到这一点纯粹与正则表达式还是我之间的正则表达式必须首先拆分字符串?是否有可能匹配字符串
回答
可以使用一个正则表达式:
7\d?$
这将一个7无论是在末端或在第二到最后的位置相匹配。或者,更确切地说,它匹配字符串末尾的7,可选地跟随另一个数字,在最后两个位置之一转换为7。
我会用7 \ d?$ – gislikonrad 2013-03-15 11:20:54
自发布答案以来,正则表达式经历了4次或5次迭代(每次都有功能);-) – Joey 2013-03-15 11:23:04
您能解释为什么需要问号吗? – Walex 2013-03-15 12:11:07
你可以使用环视来匹配字符串的任意索引,我们将使用后面的(?<=)
来检查我们是否有start of string
,后面跟着固定数量的字符。和前瞻性,以(?=)
检查,我们有字符固定数量的向右依次end of string
。从字符串的开头
指数:
(?<=^.{N})REGEX
你REGEX
将匹配从第N(从零开始)指数,所以如果你想检查是否从左侧的3ND字符x
在以下字符串12x45
那么你可以使用(?<=^.{2})x
其中x
是检查如果字符是x
正则表达式。
使用前瞻,你可以从做到底处于同一起跑线:
REGEX(?=.{N}$)
所以要检查如果任的最后2位数字是7的正则表达式将是7\d?(?=.{0}$)
(这是什么乔伊提出的等价物。但是,正如你所看到的,这对于所有的索引都是适用的(并不是说你应该用这个来代替简单的那个,它只是一个更一般的正则表达式)
如果你想检查第三个(从零开始)左边是x
然后不奇怪你会有x(?=.{2}$)
。
您也可以结合这两个指标之间,例如检查要检查是否在任何一端的第三个数字之间的一切都在12xxxxxx21
x
的任意号码,然后你,你有以下:
(?<=^.{2})x*(?=.{2}$)
注:
如果你只是想要一个匹配/不匹配的正则表达式,那么你可以没有查找变通,但随后你会匹配整条生产线,而不是只有你在REGEX
指定的内容。
e.g:
(?<=^.{2})x*(?=.{2}$)
将匹配xxxxxx
对于上面的例子,在那里为^.{2}x*.{2}$
将是字符串匹配,但它会匹配整个事情(12xxxxxx21
),而不是仅仅xxxxxx
。
- 1. 是否有可能检查一个字符串是否与数组或字典中的字符串匹配,Swift?
- 2. 是否有可能计算匹配匹配的每行有多少字匹配
- 3. 匹配可能包围的字符串
- 4. 是否字符串匹配glob模式
- 5. 检查字符串是否匹配url
- 6. 字符串不能匹配
- 7. preg_match匹配可选字符串,但不匹配所有字符串
- 8. 是否可以在Dictionary字符串键上进行部分字符串匹配?
- 9. 是否可以生成匹配正则表达式字符串的字符串?
- 10. 可选字符匹配字符串
- 11. 检查是否匹配字符串我有一个字符串定义
- 12. 文本文件中是否有特定的字符串匹配字符串
- 13. Java的匹配字符串值,枚举,有多个字符串匹配的可能性每个枚举值
- 14. RegEx a *是否匹配所有字符串?
- 15. 替换JavaScript字符串。如何检查是否有匹配?
- 16. 检查字符串字符是否与数组值匹配
- 17. 是否有可能在与正则表达式匹配时忽略字符串中的字符
- 18. elisp中的匹配字符串没有返回匹配字符串匹配的字符串
- 19. 是否有可能找出哪个字段在表mysql匹配?
- 20. 检查字符是否匹配可接受字符列表
- 21. 字符串匹配
- 22. 字符串匹配
- 23. 字符串匹配
- 24. 匹配字符串
- 25. 匹配字符串
- 26. 匹配字符串
- 27. 字符串匹配
- 28. 匹配字符串
- 29. 字符串匹配
- 30. 字符串匹配
一个平凡的正则表达式。 – Will 2013-03-15 11:13:20
您使用哪种语言? – Saju 2013-03-15 11:15:24