我有正則表達式的問題,它就像我試圖計算文本區域中的單詞數量,但我沒有得到期望的輸出。主要的問題是,它不計算數字,例如「Hello world 123」它只計算2,而「123」它根本不計算。我的正則表達式是response.trim().replace(/\b[\s,-:;'"_]*\b/gi, ' ').split(' ');
如何使用正則表達式計算textarea中的單詞和數字?
回答
您應該使用/\b|\d+/gi
來搜索字邊界或數字,然後計算數組中元素的數量。
var array = response.trim().match(/\b|\d+/gi);
var count = array.length;
正如您所用php
標記這個我假設PHP
答案是可以接受的,在這種情況下,你並不需要一個正則表達式。你可以只用str_word_count
:
echo str_word_count("Hello world 123!", 0, '0..9'); // 3
注意第三個參數,它允許您指定其他字符,組成一個字。作爲默認設置,不包括數字,因此在此添加。
或者您可以使用preg_match_all
:
preg_match_all('/\b[a-z\d]+\b/i', $string);
這將只計算字母和數字作爲文字字符。
您的解決方案几乎是完美的,但這裏有兩個問題:
- 取代「至少一」字分隔符發生(
+
),而不是任何(*
) - 你有
,-;
字符在你的角色等級([...]
)範圍內,不幸的是包括所有的數字。當你想匹配-
(破折號)時,總是在角色等級的開頭!
所以修正的正則表達式:/\b[-\s,:;'"_]+\b/gi
編輯:如果您需要在每個非字母數字字符,使用[\W_]
對不起,先生,它不工作。它仍然計數,。 /? (特殊字符) –
@niku你是對的,我把你的解決方案作爲一個起點,但在我的回答末尾添加了一個非alpahn數字匹配模式 – aorcsik
匹配您可以使用
array = response.trim().match(/\w+/g);
count = array.length;
在你的數組只有字(字母數字字符串)將被存儲。
爲了記錄在案,\w
是短期的[a-zA-Z0-9]
,這意味着它不會趕上正確的話有特殊字符,像journée
,但它會返回6 I'd like 1 cup...plz!
。
- 1. 使用正則表達式計算Perl中的句子/單詞
- 2. 這些正則表達式如何計算HTML中的單詞?
- 3. 用於計算單詞的javascript正則表達式
- 4. 如何計算以下正則表達式中的忽略單詞列表?
- 5. Python中使用正則表達式計算字數
- 6. 使用正則表達式匹配包含數字的單詞
- 7. 使用python正則表達式計算文檔中單詞的頻率
- 8. 使用substr_count計算正則表達式
- 9. 如何計算MySQL /正則表達式替換器中的單詞?
- 10. 正則表達式計算
- 11. 如何計算textarea中的#個單詞
- 12. 正則表達式計算單詞的長度,如果它有'w'字母。 Java
- 13. 我如何計算文本中的單詞和表達式?
- 14. 單詞和2個數字的正則表達式?
- 15. 使用正則表達式區分輸入中的數字和單詞
- 16. 使用正則表達式計算字符串中的元音
- 17. 正則表達式中的單詞
- 18. Textarea的正則表達式
- 19. textarea的正則表達式
- 20. 正則表達式匹配和計算
- 21. 使用正則表達式的正則表達式數字
- 22. 正則表達式來檢測空格,用Javascript計算單詞的新行數
- 23. 使用正則表達式限制響應中的單詞數
- 24. 使用正則表達式匹配數字和單詞的確切數量 - Python27
- 25. 正則表達式中的計算
- 26. 計算器中的正則表達式
- 27. 正則表達式來計算正則表達式中捕獲組的數量
- 28. 如何使用正則表達式添加重複的單詞?
- 29. 正則表達式:移除單詞和數字
- 30. 計算器正則表達式小數
什麼是你想要的目的。如果只計算字段中的字符,則可以使用document.getElementById('your_id')。value。長度' – RichieAHB
'php'是這裏的必要標籤嗎?你需要JavaScript的答案嗎? – MichaelRushton
@MichaelRushton是的,你可以 –