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

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

匹配 Java 中的阿拉伯標點符號

匹配 Java 中的阿拉伯標點符號

智慧大石 2021-11-24 16:00:51
我想在此代碼中編輯 REGEX_PATTERN2 以使用阿拉伯標點符號的匹配()方法 String REGEX_PATTERN = "[\\.|,|:|;|!|_|\\?]+";        String s1 = "My life :is happy, stable";        String[] result = s1.split(REGEX_PATTERN);        for (String myString : result) {            System.out.println(myString);   }         String REGEX_PATTERN2 = "[\\.|,|:|;|!|_|?|?|?\\?]+";            String s2 = " ????? ? ?????? ?????";            String[] result2 = s2.split(REGEX_PATTERN2);            for (String myString : result2) {                System.out.println(myString);       }我想要的輸出我的生活很開心穩定的??????????反義詞我如何編輯此代碼并使用matches()而不是split()方法來獲得帶有阿拉伯標點符號的相同輸出
查看完整描述

3 回答

?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

這里有幾個問題。首先這個例子:

  if (word.matches("[\\.|,|:|;|!|\\?]+"))

由于以下原因,這有點1不正確:

  1. A.不需要在字符類中轉義。

  2. A|并不意味著字符類中的交替。

  3. A?不需要在字符類中轉義。

(有關更多詳細信息,請閱讀javadoc或有關 Java 正則表達式的教程。)

因此,您可以將上述內容重寫為:

  if (word.matches("[.,:;!?]+"))

...假設您不想將管道字符歸類為標點符號。

現在這個:

 if (word.matches("[\.|,|:|;|!|?|?|..|...|?|\?]+"))

你有和上面一樣的問題。此外,您似乎使用了兩個和三個句號/句點字符而不是(大概)某些 Unicode 字符。我懷疑它們可能是 a \ufbb7or u061eor \u06db,但我不是語言學家。(當然 2 或 3 個句號是不正確的。)


那么阿拉伯語的標點符號是什么?

老實說,我認為答案取決于您查看的來源,但維基百科指出

只有阿拉伯語問號 ??? 和阿拉伯語逗號 ??? 用于常規阿拉伯語文字輸入,并且逗號經常被拉丁文字逗號 (,) 替代。


1 - 稍微不正確,我的意思是這個例子中的錯誤大多是無害的。但是,您|在類中包含(多個實例)字符 n 確實意味著您會將“管道”錯誤地歸類為標點符號。


查看完整回答
反對 回復 2021-11-24
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

[]表示正則表達式字符類,這意味著它只匹配單個字符。...是 3 個字符,因此不能在字符類中使用。

在字符類中,您不需要用 分隔字符|,也不需要轉義.?。

你可能是這個意思,它是一個替代字符序列的列表:

"(?:\\.|,|:|;|!|\\?|?|?|?|\\.\\.|\\.\\.\\.)+"

如果您確實使用字符類,您可能會獲得更好的性能:

"(?:\\.{1,3}|[,:;!????])+"

當然,+在最后,每次迭代匹配 1-3 個周期是相當多余的,所以這樣做:

"[.,:;!????]+"


查看完整回答
反對 回復 2021-11-24
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

這是一種不同的方法,它使用 Unicode 屬性而不是特定字符(如果您關心更多的阿拉伯語標記,而不僅僅是另一個答案中提到的問號和逗號):

"(?=^[\\p{InArabic}.,:;!?]+$)^\\p{IsPunctuation}+$"

它匹配具有標點符號類別的整個字符串,這些字符串也位于阿拉伯語塊中,或者是您在努力中列出的其他標點符號之一。

它會匹配像"??"or 之類的字符串"??:",但不會匹配"???"or "??a"


查看完整回答
反對 回復 2021-11-24
  • 3 回答
  • 0 關注
  • 262 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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