我有很大的字符串,我需要檢查,如果號碼顯示其是超過3
手段「一些字符串2」將是無效的,但「一些字符串3」,「一些string7滯留「將是正確的。用PHP正則表達式
回答
preg_match('/some\s*string\s*([3-9][0-9]*|[1-9][0-9]+)/i', $haystack);
這裏工作example
但是,檢查你的用例,這似乎是檢查在應用程序中描述的特定版本之後,我也勸你剛纔得到的數字出來的字符串,並將其與實際數量,以確保它比3大於或等於:
preg_match('/([0-9]+)/', $string, $matches);
if ($matches[1] >= 3) {
// Do something
}
這是行不通的?
$numberBiggerThanThree = preg_match('/([0-9]{2,}|[3-9])/', 'some long string 3');
兩位數字呢? – 2012-07-20 07:10:42
正則表達式用於文本匹配,而不是算術。合適的工作正確的工具...
preg_match('/([0-9]+)/', $string, $matches);
if ($matches[1] >= 3) {
// Do something
}
絕對比使用正則表達式更好的解決方案。 – 2012-07-20 07:16:28
你匹配一個單詞後跟一個可選的空間,那麼這個數大於2.由於您可以控制小數位:
(\w*\s*(?:[1-9]\d+|[3-9]))
一些小例子(demo):
$subject = 'I have big string in that I need to check if number is present which is more than 3.
Means "some string2" will be invalid , but "some string 3","some string7" will be correct.';
$pattern = '(\w*\s*(?:[1-9]\d+|[3-9]))';
$r = preg_match_all($pattern, $subject, $matches);
var_dump($matches);
輸出:
array(1) {
[0]=>
array(3) {
[0]=>
string(6) "than 3"
[1]=>
string(8) "string 3"
[2]=>
string(7) "string7"
}
}
我希望這是有幫助的。
我修改弗洛裏安的解決方案:
[a-z]+\s?[a-z]+\s?([1-9][0-9]+|[3-9])
它適用於任何字符串,而不僅僅是「一些字符串」,它僅允許0或1的空白字符。
好的補充。儘管如此,在檢查了他的用例之後,我也建議不要使用正則表達式。 – 2012-07-20 08:51:49
- 1. PHP-MySQLi替換爲正則表達式/正則表達式/正則表達式
- 2. SED正則表達式用PHP正則表達式不兼容
- 3. PHP +正則表達式表達式
- 4. 形式的Java正則表達式PHP正則表達式
- 5. 將JavaScript正則表達式轉換爲PHP正則表達式?
- 6. 轉換PHP正則表達式C#正則表達式
- 7. Javascript lastIndex正則表達式屬性到PHP正則表達式
- 8. 轉換PHP正則表達式的JavaScript正則表達式
- 9. 將Java正則表達式轉換爲PHP正則表達式
- 10. Python正則表達式vs PHP正則表達式
- 11. PHP + JAVASCRIPT GET正則表達式的URL正則表達式
- 12. 正則表達式php(正則表達式)
- 13. htaccess正則表達式vs php正則表達式
- 14. PHP的正則表達式的JavaScript正則表達式
- 15. PHP的preg_match和正則表達式的正則表達式
- 16. JS正則表達式到PHP正則表達式轉換
- 17. 將PHP正則表達式轉換爲VB.Net正則表達式
- 18. 將php正則表達式轉換爲java正則表達式
- 19. PHP正則表達式到Java正則表達式
- 20. 正則表達式,正則表達式PHP
- 21. Laravel/Php正則表達式
- 22. PHP正則表達式
- 23. php preg_replace,正則表達式
- 24. PHP正則表達式
- 25. 正則表達式(PHP)
- 26. 正則表達式PHP
- 27. php preg_match正則表達式
- 28. PHP +正則表達式
- 29. 正則表達式在PHP
- 30. PHP:正則表達式,preg_split
目前我正在使用[3-6],但我不想添加上限。 – Debugger 2012-07-20 07:07:23
感謝used/Android [3-9]。* /,我正在使用它來檢測Android的版本,如果他們會改變命名約定,然後我搞砸了。 – Debugger 2012-07-20 07:10:05
當他們發佈版本10時,這不起作用。請檢查我的答案。 – 2012-07-20 07:11:28