:
(“冒号”)在正则表达式 有特殊的含义,但我需要把它作为一样,是[A-Za-z0-9.,-:]*
我试图逃跑,但是,这并不工作[A-Za-z0-9.,-\:]*
如何在正则表达式中键入“:”(“冒号”)?
回答
在大多数正则表达式实现(包括Java的)中,:
没有特殊的含义,既不在内部也不在字符类外。
你的问题很可能是由于该-
充当你的类范围操作符:
[A-Za-z0-9.,-:]*
其中,-:
比赛','
和':'
之间的所有ASCII字符。请注意,它仍然匹配文字':'
但是!
试试这个:
[A-Za-z0-9.,:-]*
通过将-
在开始或之类的结束,它的字面"-"
匹配。正如Keoki Zee在评论中提到的,你也可以在课堂上跳过-
,但大多数人只是简单地在课程结束时添加它。
一个演示:
public class Test {
public static void main(String[] args) {
System.out.println("8:".matches("[,-:]+")); // true: '8' is in the range ','..':'
System.out.println("8:".matches("[,:-]+")); // false: '8' does not match ',' or ':' or '-'
System.out.println(",,-,:,:".matches("[,:-]+")); // true: all chars match ',' or ':' or '-'
}
}
您也可以使用反斜杠'[a \ -z]'将连字符转义。 – 2011-07-05 08:44:58
@Keoki:真的,尽管我发现它尽可能避免(在Java字符串内部双重转义)做得更清楚。尽管如此,最好还是提一个_can_逃避它。 –
在末尾放置连字符可能是以前的程序员做的,导致了这个错误。我总是*逃避它:结束循环':)' – Kobi
结肠没有特殊的意义在一个角色类中,并且不需要被转义。据the PHP regex docs,需要唯一的字符在字符类转义如下:
所有非字母数字字符等 比
\
,-
,^
(在开始)和 终止]
是非特殊 角色类别,但如果它们被转义,则不会造成 危害。
有关Java正则表达式的更多信息,请参见the docs。
我不明白为什么这会得到一个downvote,有人可以向我解释什么可能是错误的这个答案吗? – 2011-07-05 09:42:02
我没有投下来,但也许是因为你在一个Java的正则表达式问题链接PHP正则表达式文档? – hcpl
使用\\:
而不是\:
.. \
在java字符串中有特殊含义。
尽管反斜杠是Java字符串中的转义字符,但在这里转义反斜杠并不能解决问题,因为':'在正则表达式中并不是一个特殊的字符。 – 2011-07-05 09:04:59
小心,-
与正则表达式特殊的意义。在[]
中,如果将其放置在末尾处,则可以将它放在没有问题的地方。在你的情况下,,-:
被视为从,
到:
。
- 1. 正则表达式哈希和冒号
- 2. Javascript的正则表达式为冒号?
- 3. 正则表达式不冒号
- 4. 正则表达式 - 包括冒号
- 5. 正则表达式和冒号(:)
- 6. 正则表达式在每个词后面加冒号引号
- 7. 用正则表达式删除空格,逗号,冒号,分号
- 8. 正则表达式替换冒号和分号之间的冒号
- 9. 正则表达式接受逗号和冒号
- 10. 删除一个正则表达式中的冒号和空格
- 11. 冒号在Visual Studio的正则表达式
- 12. 分割单冒号而不是双冒号使用正则表达式
- 13. 使用std :: tr1 ::正则表达式冒号使用std :: tr1 :: regex使用冒号
- 14. 正则表达式,冒号分隔列表
- 15. 电话号码正则表达式(正则表达式)在Python
- 16. Ruby正则表达式:忽略引号如果冒号站在他们之前
- 17. 用正则表达式插入符号
- 18. 正则表达式与插入符号
- 19. 正则表达式匹配2位数冒号2位数字
- 20. 正则表达式 - 多个匹配,冒号和空格
- 21. 简单的python正则表达式,冒号后匹配
- 22. 正则表达式匹配冒号后的字符串“:”
- 23. 使用添加冒号MAC地址的正则表达式
- 24. Bash正则表达式匹配冒号分隔的整数
- 25. 正则表达式匹配冒号前的所有内容?
- 26. 正则表达式冒号后的字段名称值
- 27. 正则表达式到第1个冒号
- 28. 使用正则表达式的冒号后,以匹配一切
- 29. 正则表达式来查找以冒号开头的单词
- 30. 正则表达式冒号,但忽略替换
也许你需要两个反斜杠才能逃脱它? – Mehrdad
你想匹配什么? – 2011-07-05 08:42:23