gpt4 book ai didi

java - 正则表达式匹配 "dictionary words"

转载 作者:行者123 更新时间:2023-11-30 07:30:37 25 4
gpt4 key购买 nike

我是 Java 用户,但我不熟悉正则表达式。

我只想有一个小表达式,给定一个词(我们假设字符串只有一个词),用 boolean 值回答,告诉这个词是否有效。

一个例子...我想捕捉所有可能出现在字典中的单词...所以,我只想要带有 a-z A-Z 字符的单词,一个连字符(例如:man-in-the-middle ) 和撇号(如 I'll 或 Tiffany's)。

有效词:

  • “食物”
  • “火箭”
  • “中间人”
  • "kahsdkjhsakdhakjsd"
  • “耶稣”

无效词:

  • “gipsy76”
  • “www.google.com”
  • “me@gmail.com”
  • “745474”
  • "+-x/"

我使用这段代码,但它不会给出正确答案:

Pattern p = Pattern.compile("[A-Za-z&-&']");
Matcher m = p.matcher(s);
System.out.println(m.matches());

我的正则表达式有什么问题?

最佳答案

  • 在表达式后添加 + 表示“这些字符中的一个或多个”:
  • \ 转义连字符(或放在最后)。
  • 删除那些 & 字符:

代码如下:

Pattern p = Pattern.compile("[A-Za-z'-]+");
Matcher m = p.matcher(s);
System.out.println(m.matches());

完成测试:

String[] ok = {"food","RocKet","man-in-the-middle","kahsdkjhsakdhakjsd","JESUS"};
String[] notOk = {"gipsy76", "www.google.com", "me@gmail.com", "745474","+-x/" };

Pattern p = Pattern.compile("[A-Za-z'-]+");

for (String shouldMatch : ok)
if (!p.matcher(shouldMatch).matches())
System.out.println("Error on: " + shouldMatch);

for (String shouldNotMatch : notOk)
if (p.matcher(shouldNotMatch).matches())
System.out.println("Error on: " + shouldNotMatch);

(不产生任何输出。)

关于java - 正则表达式匹配 "dictionary words",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7752269/

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