我一直在努力研究这个问题,并且使用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.");
}
非常感谢任何帮助。
答案 0 :(得分:1)
指令“无数字”是多余的,因为它已经说它只能包含字母和连字符。
假设您的意思是正常A
到Z
,并假设您仍在使用Pattern.CASE_INSENSITIVE
:
以字母开头:^[a-z]
随后是任何字母和连字符序列:[a-z-]*
结合使用:^[a-z][a-z-]*$
如果您使用m.matches()
代替m.find()
,则更简单:
[a-z][a-z-]*
答案 1 :(得分:0)
//starting with one or more letters then can contain as many as you want with - included
[a-zA-Z]+[a-zA-Z-]*
答案 2 :(得分:0)
我认为这比你正在做的容易得多:
String test = "[a-zA-Z][a-zA-Z\\-]*";
然而,这仅适用于ASCII A-Z,不适用于带重音和变音符号的单词。
答案 3 :(得分:0)
var $animatedEls = $(".block-inner");
$(window).scroll(function(e) {
e.preventDefault();
var scrollTop = $(window).scrollTop();
var offset = 0;
// Loop through each image (.block-inner)
$.each($animatedEls, function(i, item) {
// Get offset for each .inner-block
offset = $(item).offset().top - scrollTop;
console.log(i+') '+offset);
// Apply to every second item
if (i % 2) {
$(item).css("transform","translateY(-" + (offset/20) + "px)");
} else {
$(item).css("transform","translateY(" + (offset/20) + "px)");
}
});
});