gpt4 book ai didi

java - 如何在正则表达式中输入 ":"("colon")?

转载 作者:IT老高 更新时间:2023-10-28 20:23:27 25 4
gpt4 key购买 nike

:(“冒号”)在正则表达式中有特殊含义,但我需要按原样使用,如 [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 '-'
}
}

关于java - 如何在正则表达式中输入 ":"("colon")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6579921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com