[英]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.