回答
你沒有。只需使用+?\$
。例如,.+?\$
至少匹配一個字符,包括第一個$
。 .+?(?=\$)
:如果您要排除的$
,包裹它在先行斷言
;(對於這一點,只需使用.*?\$
的$
不能是第一個字符,雖然)。
EDIT(響應於澄清):向對$
之間匹配的標識符,並假設$
s時對應的標識符,則可以只寫:\$(.*?)\$
。圓括號將創建一個捕獲組,以便從匹配中排除$
。如果分隔符不是標識符的一部分,並且您需要查找多個匹配項(例如$AAA$BBB$
),那麼您需要使用零寬度聲明:(?<\$)(.*?)(?=\$)
,以便在匹配時不會吸收$
。
我有這個字符串$ CM-PRQRPMD $。我想獲取$符號內的字符串。問題是該字符串沒有固定的長度,因此我不能使用這個{1,10}。 – mysticfalls 2011-03-06 04:30:58
我必須讓它工作!感謝您的解決方案! – mysticfalls 2011-03-06 05:20:23
@ user646578,不要忘記接受答案:) – 2011-03-06 06:32:33
這個正則表達式將匹配任何字母,數字或$符號。你需要的是什麼?
[A-Za-z0-9\$]
更新:
給OP的評論來匹配 「$ CM-PRQRPMD $」,使用下面的正則表達式:
\$[A-Z-]+\$
我可以把這個作爲{1,[\ $]} – mysticfalls 2011-03-06 04:16:38
沒有。當我說範圍0-9時,你知道我在說什麼。當我說「範圍」@ - 時,這包括了什麼?誰知道,它沒有定義。你可以做的是使用'\ p {P}'這意味着「任何標點符號」,所有\ p {}的定義[這裏](http://www.regular-expressions.info/unicode.html ) – 2011-03-06 04:27:54
也請注意,方括號和大括號之間存在差異。 '[123]'表示「匹配1,2或3」,「{1,2}」表示與前一次匹配1或2次。 – 2011-03-06 04:29:24
- 1. 數字範圍的正則表達式
- 2. 正則表達式的數字範圍
- 3. python:數字範圍到正則表達式匹配字符串
- 4. 正則表達式:數字範圍
- 5. 正則表達式數字範圍
- 6. 正則表達式數字範圍prasing
- 7. 字符串加數字範圍的正則表達式
- 8. 數字範圍和字符的正則表達式
- 9. 正則表達式正則表達式 - 字符範圍,字邊界,斷言
- 10. 正則表達式的特定字符
- 11. 取反正則表達式中的字符範圍內的字符範圍
- 12. 正則表達式特定字符串
- 13. 正則表達式與特定字符
- 14. 正則表達式用於數字和特定特殊字符
- 15. 從字符範圍生成正則表達式
- 16. 正則表達式圍繞一個特定的字符串
- 17. 修改數字和數字範圍表達式的正則表達式
- 18. JS正則表達式 - 特定字符後得到的字
- 19. 正則表達式查找特定字符串後的數字
- 20. 正則表達式匹配特定的字符串或數字
- 21. Java正則表達式指定數字範圍
- 22. 是否接受正則表達式模式中的範圍的特殊字符?
- 23. Java正則表達式找到第一個字符不在字符範圍內
- 24. 正則表達式在特定範圍內的逗號分隔數字
- 25. 如何使特定的數字範圍與正則表達式匹配
- 26. 正則表達式,檢查特定長度範圍內的數字。 C#/ ASP.NET
- 27. 選擇字符串特定字符的正則表達式
- 28. 正則表達式匹配特定字符串的字符>
- 29. 這代表什麼字符範圍(正則表達式)?
- 30. 特殊字符的正則表達式?
把一些例子.. – 2011-03-06 02:53:32
我有這樣的字符串$ CM-PRQRPMD $。我想獲取$符號內的字符串。問題是該字符串沒有固定的長度,因此我不能使用這個{1,10}。 – mysticfalls 2011-03-06 04:14:20