gpt4 book ai didi

java - 正则表达式和 Java 的问题 : Words may contain only letters and hyphens (-) and must begin with a letter

转载 作者:行者123 更新时间:2023-12-01 09:18:15 28 4
gpt4 key购买 nike

多年来我一直在尝试使用 Java 和 Regex 来研究这个问题,但确实很困难。我正在尝试创建一个符合这些条件的正则表达式:
单词只能包含字母和连字符 (-),并且必须以字母开头。没有数字。

我的 Java 代码如下所示:

String test="^[a-zA-Z][^\\\\0-9]*[\\-]*[a-zA-Z]*";
Pattern p = Pattern.compile(test,Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher m = p.matcher(textInputWord.getText());
if(m.find()){
String temp = textInputWord.getText();
wordArrayList.add(temp);
labelMainText.setText("Word " + textInputWord.getText() + " was added to the ArrayList.");
}else{
labelMainText.setText("The string " + textInputWord.getText() + " was not added to the list as it is not a valid word.");
}

任何帮助将不胜感激。

最佳答案

指令“无数字”是多余的,因为它已经表明它只能包含字母和连字符。

假设字母是指普通的 AZ,并假设您仍在使用 Pattern.CASE_INSENSITIVE:

以字母开头:^[a-z]
后跟任意字母和连字符序列:[a-z-]*
组合起来:^[a-z][a-z-]*$

如果您使用m.matches()而不是m.find() ,那么就更简单了:

[a-z][a-z-]*

关于java - 正则表达式和 Java 的问题 : Words may contain only letters and hyphens (-) and must begin with a letter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40363476/

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