亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 Java 正則表達式查找給定字母的單詞

如何使用 Java 正則表達式查找給定字母的單詞

夢里花落0921 2023-02-23 14:45:49
public class Homework {  public static void main(String[] args) {    String words[] = { "Abendessen", "Affe", "Affen", "aber", "anders", "Attacke", "arrangieren", "Art", "Asien",            "Bund", "Arten", "Biene", "Abend", "baden", "suchen", "A1rten", "Abend-Essen" };    Pattern pattern = Pattern.compile("[aA][a-z[n]+a-z]*");    for (int i = 0; i < words.length; i++) {      Matcher matcher = pattern.matcher(words[i]);      if (matcher.find()) {        System.out.println("OK: " + words[i]);      }    }  }}過濾以 a 或 A 開頭并包含 n 的單詞。這些單詞可能僅由字母組成,并且只有以第二個字母開頭的小寫字母。這些詞應該匹配:Abendessen, Affen, anders, arrangieren, Asien, Arten, Abend我已經粗心地嘗試了上面的這個正則表達式,并且認為那也是錯誤的。
查看完整描述

1 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

您當前的模式[aA][a-z[n]+a-z]*如下:

字符類[aA],字符類[a-z[n]+。然后后面跟著a-z]*which 將匹配a-,z]重復 0+ 次。

例如匹配Abendessena-z]

你可能做的是用 a 或 A 開始匹配并重復 2 次[a-z]0+ 次并確保n中間有一個 a:

\b[aA][a-z]*n[a-z]*\b

解釋

  • \b單詞邊界

  • [aA]匹配 a 或 A

  • [a-z]*匹配 0+ 次 az

  • n匹配n

  • [a-z]*匹配 0+ 次 az

  • \b單詞邊界

您也可以使用錨點^$斷言字符串的開頭和結尾而不是\b

正則表達式演示


查看完整回答
反對 回復 2023-02-23
  • 1 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號