例如具體的指標,如果我有一個電話號碼,我想看看如果任的最後兩位數字的含有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