java - 起始序列的正则表达式

标签 java regex

package xmlchars;

import java.util.regex.Pattern;

public class TestRegex {

public static final String SPECIAL_CHARACTERS = "(?i)^[^a-z_]|[^a-z0-9-_.]";


public static void main(String[] args) {
    // TODO Auto-generated method stub
    String name = "#1998St #";  
    Pattern pattern = Pattern.compile(SPECIAL_CHARACTERS);      
    System.out.println(pattern.matcher(name).replaceAll(""));//gives wrong output 1998St            
}

}

基本上我想要实现的是

  1. 仅以 a-z 和 _ 开头的字符串
  2. 包含 a-z 0-9 _ - 的字符串。开始后
  3. 整个字符串不区分大小写

最佳答案

你可以说:

... SPECIAL_CHARACTERS = "^[a-z_][a-z0-9_]+$";

并通过以下方式定义模式:

Pattern pattern = Pattern.compile(SPECIAL_CHARACTERS, Pattern.CASE_INSENSITIVE);

关于java - 起始序列的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19874083/

相关文章:

java - 对导入的三角形网格 Javafx 进行纹理处理

JAVA REGEX 提取圆形冒号 "123:32:21"

regex - 字符串末尾的正则表达式 _#

javascript - HTML代码条正则表达式问题

javascript - JS : matching entries with capture groups, 占新行

java - 如何称呼未实现列表的类似列表的对象

java - Java 中的包和 C++ 中的库之间有区别吗

c# - 正则表达式与 * 匹配,不匹配包含非英文字符的文本

java - hibernate 条件中的 SQL 'case when'

javascript - 按照规则使用 RegEx 验证电子邮件