Tag: 正则表达式

试图检查字符串是否包含特殊字符或小写java

我正试图让这个正则表达式行工作,但它们似乎没有工作(我不能打印出“匹配”。 我的目标是从Scanner读取一个字符串,然后运行此function。 如果字符串具有小写值或特殊字符,那么我想调用无效函数然后返回NULL。 然后在isValid()方法中,我将返回false并结束。 如果它包含NUMBERS和UPPERCASE字符,我只想返回字符串,以便它可以做其他事情。 我似乎无法打印出“匹配”。 我确信我做得对,这真让我感到沮丧,我一直在检查论坛的方式不同,但似乎都没有。 谢谢您的帮助。 public static String clean(String str){ String regex = “az~@#$%^&*:;.,/}{+”; if (str.matches(“[” + regex + “]+”)){ printInvalidString(str); System.out.println(“matches”); } else{ return str; } return null; } public static boolean isValid(String validationString){ //clean the string validationString = clean(validationString); if (validationString == null){ return false; }

Vaadin:如何使validation器只接受数字和一位小数

我正在尝试validation文本字段只有数字和一个小数,但小数值会导致validation器关闭: TextField tf = new TextField(); tf.addValidator(new RegexpValidator(“^\\d+$”, facilityId.getCaption() + “Only numbers and one decimal allowed.”)); 所以我得到了数字,但我如何告诉validation者“。” 没关系? 注意: Add-Ons不是一个选项。

如何使Java Regex匹配除指定模式之外的所有内容

我试图在整个字符串中匹配除垃圾值之外的所有内容。我尝试使用的模式是: ^.*(?!\w|\s|-|\.|[@:,]).*$ 我一直在regexPlanet上测试模式,这似乎与整个字符串匹配。我使用的输入字符串是: Vamsi///#k03@g!!!l.com 123**5 我怎样才能让它只匹配除模式之外的所有内容,我想替换任何与空白空间或我选择的特殊字符匹配的字符串。

Java相当于JavaScript的String.match()

JavaScript的String.match()的Java等价物是什么 我需要得到一个数组或所有匹配的列表 例: var str = ‘The quick brown fox jumps over the lazy dog’; console.log(str.match(/e/gim)); 给 [“e”, “e”, “e”] http://www.w3schools.com/jsref/jsref_match.asp

正则表达式,用于检查String是否为正自然数

我想检查字符串是否为正数,但我不想使用Integer.parseInt()因为用户可能输入的数字大于int。 相反,如果数字字符串包含所有“0”字符,我宁愿使用正则表达式返回false。 if(val.matches(“[0-9]+”)){ // We know that it will be a number, but what if it is “000”? // what should I change to make sure // “At Least 1 character in the String is from 1-9” } 注意:字符串必须只包含0 – 9 ,并且不能包含全部0 ; 换句话说,它必须在[1-9]中至少有一个字符。

带有“Joker”字符的Java Regex

我尝试使用正则表达式validation输入字段。 我称之为“小丑”的角色是’?’ 和’*’。 这是我的java正则表达式: “^$|[^\\*\\s]{2,}|[^\\*\\s]{2,}[\\*\\?]|[^\\*\\s]{2,}[\\?]{1,}[^\\s\\*]*[\\*]{0,1}” 我想要匹配的是: 至少2个字母数字字符(除了’?’和’*’) ‘*’只能出现一次并出现在字符串的末尾 ‘?’ 可以出现多次 根本没有WhiteSpace 例如: abcd =好的 ?bcd =好的 AB? =好的 ab * =好的 ab?* =好的 ?? cd = OK * ab =不行 ??? =不行 ab cd =不行 abcd =不行(开头的空间) 我让正则表达式有点复杂,我迷失了你能帮助我吗?

正则表达式Java单词上下文

我想要实现的是我想要获得首字母缩略词的上下文。 你能用正则表达式帮助我吗? 我循环遍历文本(String)并寻找点,匹配后我试图获取特定的首字母缩略词的上下文,以便我可以在那之后做一些其他处理,但我无法得到上下文。 我需要至少5个单词,并在首字母缩略词后5个单词。 //Pattern to match each word ending with dot Pattern pattern = Pattern.compile(“(\\w+)\\b([.])”); Matcher matchDot = pattern.matcher(textToCorrect); while (matchDot.find()) { System.out.println(“zkratka —“+matchDot.group()+” —“); //5 words before and after tha match = context // Matcher matchContext = Pattern.compile(“(.{25})(“+matchDot.group()+”)(.{25})”).matcher(textToCorrect); Pattern patternContext = Pattern.compile(“(?:[a-zA-Z’-]+[^a-zA-Z’-]+){0,10}”+matchDot.group()+”(?:[^a-zA-Z’-]+[a-zA-Z’-]+){0,10}”); Matcher matchContext = patternContext.matcher(textToCorrect); if (matchContext.find()) { System.out.println(“context: “+matchContext.group()+” :”); // […]

计算字符串匹配数

我想获得列表中最小的字符串匹配。 虽然我这样做是成功的,但问题是我想要计算出已经进行了多少次匹配计数: List mylist=new LinkedList(); Set result=new LinkedHashSet(); mylist.add(“interpreter”); mylist.add(“interprete”); mylist.add(“interpret”); mylist.add(“developed”); mylist.add(“develops”); mylist.add(“develop”); mylist.add(“interpret”); String small=””; Collections.sort(mylist); Collections.reverse(mylist); for(int i=0;i<mylist.size();i++) { small=mylist.get(i); for(int j=i;j<mylist.size();j++) { if(small.contains(mylist.get(j))) { small=mylist.get(j); } } result.add(small); } for (String string : result) { System.out.println(string); } 所以输出应该是: interpret=4 develop=4 我正在尝试以下代码出现问题: List mylist=new LinkedList(); Set result=new LinkedHashSet(); mylist.add(“interpreter”); mylist.add(“interprete”); mylist.add(“interpret”); mylist.add(“developed”); […]

如何在Java正则表达式中拆分这个“树状”字符串?

这是字符串: String str = “(S(B1)(B2(B21)(B22)(B23))(B3)())”; 子 – ()中的内容可以是“”,或者只是str的值,或者类似于该模式,递归地,因此子()是子树。 预期结果: str1 is “(S(B1))” str2 is “(B2(B21)(B22)(B23))” //don’t expand sons of a son str3 is “(B3)” str4 is “()” str1-4是例如Array中的元素 如何拆分字符串? 我有一个熟悉的问题: 如何在Java正则表达式中拆分此字符串? 但它的答案对于这个来说还不够好。

当域名具有连字符时,电子邮件地址validation将失败

我有一个电子邮件地址validation正则表达式我在代码中使用如下: public class Test { public static void main(String[] args) { try { String lineIwant = “myname@asl.ramco-group.com”; String emailreg = “^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$”; Boolean b = lineIwant.matches(emailreg); if (b == false) { System.out.println(“Address is Invalid”); }else if(b == true){ System.out.println(“Address is Valid”); } } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); } } } 在示例中的此特定电子邮件地址中,布尔值返回false,而这是有效的客户电子邮件地址。 我怀疑这是因为ramco和group之间的连字符,因为当我删除它时,Boolean返回true。 如何更改我的正则表达式以容纳这样的电子邮件地址?