回答
這是很辛苦,但這樣的事情可能會做的事:
^(?:\()(\d+)(?:[^)])|(?:[^(0-9]|^)(\d+)(?:[^)0-9]|^)|(?:[^(])(\d+)(?:\))$
的問題是要匹配(123
,123)
,也不要爲非括號字符1
之間的數字2
字符串123
匹配和3
。也可能有一些邊緣情況下字符串的開始和結束。
我的建議是不使用正則表達式。也許是一個匹配數字的正則表達式,然後使用捕獲信息來檢查周圍的字符是不是括號。
正則表達式是:
^[a-z]+ ([0-9]+) \([0-9]+\) \([a-z]+\)$
結果是正則表達式的所述第一(只)匹配組。
也許你想刪除^
和$
如果正則表達式不應該匹配只有它是整個單一行的內容。您也可以使用[a-zA-Z]
或[[:alpha:]]
。這取決於您使用的正則表達式引擎,當然還有您想要匹配的內容。
示例Perl代碼:
if (m/^[a-z]+ ([0-9]+) \([0-9]+\) \([a-z]+\)$/) {
print("$1\n");
}
請注意,您的問題包含沒有足夠的信息來做出一個很好的答案可能(你沒有說你的表達式的一般格式事情,例如,如果你想匹配整數或浮點數)
有關更多信息,請參閱Regular Expression Library。
此網站可能會幫助你很多。
謝謝給-1不滿意。 –
東南是一個Q/A網站。這不是Q /「將某個其他網站的鏈接,而不是一個A」網站。此外,您提供的鏈接不回答他的問題,即「我如何匹配不包含圓括號的數字?」它只給出203個正則表達式,恰好匹配其中某個數字。他應該通過他們所有,並發現那裏可能沒有答案? – CanSpice
如何
/(?:^|[^\d(])(\d+)(?:[^\d)]|$)/
?這個數字字符串(\d+
)是
由字符串的開頭,或不是一個數字或一個開括號的字符之前(
(?:^|[^\d(])
)由最終成功匹配字符串的,或由一個字符不是數字或右括號(
(?:[^\d)]|$)
)
一個簡單的解決方案是首先去除不需要的值:
my $string = "abcd 12 (35) (df) 2311,22";
$string =~ s/\(\d+\)//g; # remove numbers within parens
my @numbers = $string =~ /\d+/g; # extract the numbers
- 1. 正則表達式搜索
- 2. MySQL多字搜索正則表達式
- 3. 正則表達式搜索字符串?
- 4. 正則表達式表達不包括數字搜索
- 5. 正則表達式:簡單的搜索正則表達式?
- 6. TCL正則表達式模式搜索
- 7. python正則表達式搜索模式
- 8. 字符串中的數字正則表達式搜索
- 9. 正則表達式從字符串搜索一個數字
- 10. 哪個更快,正則表達式搜索或數組搜索?
- 11. 搜索和正則表達式在PHP
- 12. javascript |正則表達式搜索URL
- 13. Eclipse搜索中的正則表達式
- 14. 搜索和正則表達式
- 15. 的正則表達式搜索
- 16. 正則表達式搜索不工作
- 17. mognoose多列正則表達式搜索
- 18. 正則表達式瀏覽器搜索?
- 19. 使用正則表達式搜索HashSet
- 20. 用正則表達式搜索Hpricot
- 21. 正則表達式在Emacs中搜索
- 22. Ruby的正則表達式搜索
- 23. 正則表達式搜索Gadaffi
- 24. 正則表達式和彈性搜索
- 25. 正則表達式從django.db.connection搜索?
- 26. 貓鼬搜索與$正則表達式
- 27. 正則表達式搜索,並在Perl
- 28. 使用正則表達式搜索
- 29. Python的正則表達式搜索
- 30. Azure搜索SDK正則表達式?
你使用什麼編程語言?他們都使用正則表達式有點不同。 – Chriszuma
發佈您嘗試過的內容,我們將進行修改。 –
它應該是Perl特定的。據我使用的編輯。我會嘗試找到我使用的舊示例併發布。 – jdross