回答
你没有。只需使用+?\$
。例如,.+?\$
至少匹配一个字符,包括第一个$
。 .+?(?=\$)
:如果您要排除的$
,包裹它在先行断言
;(对于这一点,只需使用.*?\$
的$
不能是第一个字符,虽然)。
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. 正则表达式数字范围prasing
- 3. 数字范围和字符的正则表达式
- 4. 取反正则表达式中的字符范围内的字符范围
- 5. 正则表达式特定字符串
- 6. 正则表达式与特定字符
- 7. 从字符范围生成正则表达式
- 8. 正则表达式围绕一个特定的字符串
- 9. 修改数字和数字范围表达式的正则表达式
- 10. JS正则表达式 - 特定字符后得到的字
- 11. 正则表达式查找特定字符串后的数字
- 12. 正则表达式在特定范围内的逗号分隔数字
- 13. 正则表达式,检查特定长度范围内的数字。 C#/ ASP.NET
- 14. 如何使特定的数字范围与正则表达式匹配
- 15. 正则表达式匹配特定字符串的字符>
- 16. 这代表什么字符范围(正则表达式)?
- 17. 特殊字符的正则表达式
- 18. 特殊字符的正则表达式?
- 19. 正则表达式的特殊字符
- 20. 正则表达式匹配数字后跟特定字符
- 21. 正则表达式检查范围内的字符不重复
- 22. JavaScript Unicode正则表达式 - 字符类中的范围出错
- 23. Python的正则表达式:坏字符范围
- 24. 正则表达式范围的数字或只是一个数
- 25. 正则表达式字母数字字符串+特殊字母
- 26. 正则表达式来验证字母数字和特定的特殊字符
- 27. 正则表达式和C#检查范围内的数字+字符(可选)
- 28. 从正则表达式中排除特定的子字符串
- 29. 特殊字符正则表达式
- 30. 正则表达式与特殊字符
把一些例子.. – 2011-03-06 02:53:32
我有这样的字符串$ CM-PRQRPMD $。我想获取$符号内的字符串。问题是该字符串没有固定的长度,因此我不能使用这个{1,10}。 – mysticfalls 2011-03-06 04:14:20