簡體   English   中英

正則表達式用於文本文件中的任何單詞

[英]Regex for any word in text file

我需要分別捕獲文本文件中的每個單詞。 單詞可以像普通單詞,數字,包含連字符的數字等。

我對一個單詞的標准是,無論它是什么,它將在另一個單詞之前用空格隔開,或者該單詞將以點結尾。

我嘗試在C#中使用@"(\\w+)+" ,但是它無法捕獲上面定義的每個單詞以及+-.,!@#$%^&*();\\/|<>"'

目的是創建一個唯一的單詞列表。

試試DEMO

([^\s\.]+)\.?

手段:

(    - beginning of capture
 [   - one of..
  ^  - none of the following characters
  \s - a space character (tab, space etc)
  \. - a literal dot
 ]
 +   - one or more of the previous block (in []) in a greedy way
)    - close of capture block
\.   - a literal dot
?    - zero or one

匹配多個非空格(而不是一個點),這些空格可以以一個點結尾(但永遠不會包含它)。

您需要[^.\\s]+來匹配非空格或點號的任何字符序列。

使用string.split()並將您的定界符定義為空格,點和/或換行符。 您也可以使用任何正則表達式作為分隔符。

https://msdn.microsoft.com/en-us/library/b873y76a(v=vs.110).aspx

正則表達式包含“單詞邊界”字符( \\b )。 這包括空格和標點符號。 由於您的條件包括數字(是否僅為ASCII?),因此這可能是針對特定情況的最佳解決方案。

您可以嘗試以下正則表達式: \\b([^\\b]+)\\b

這將匹配單詞邊界,然后匹配一個或多個非邊界字符,直到下一個單詞邊界。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM