iT邦幫忙

0

利用 C# 寫斷句系統

匿名 2012-08-08 23:28:524096 瀏覽

最近我正在學C#
我想要寫一個斷句系統
請問 有人可以指導我一下嗎?
我一直使用replace 取代 <br>
但是似乎得我到 我想要的結果

我想要的結果例如:
輸入:你好嗎?我很好,那你呢?有空再聊囉。掰!
輸出:
你好嗎?
我很好,
那你呢?
有空再聊囉。
掰!

外獅佬 iT邦大師 1 級 ‧ 2012-08-09 00:07:26 檢舉
你要的是...去解析那些標點符號...用這些你要的標點符號...
例如...問號、驚嘆號、句號等等...然後去拆解字串...拆成一個陣列或是...List什麼來著..
接著...想怎麼輸出都行...

2 個回答

6
wiseguy
iT邦超人 1 級 ‧ 2012-08-09 00:09:37

用 Regular Expression 幾乎一行程式就搞定了。以下是 php 程式範例:

&lt;pre class="c" name="code">&lt;?php
$t = '你好嗎?我很好,那你呢?有空再聊囉。掰!';
$result = preg_split('/(?|,|\?|。|!)/', $t, -1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
var_dump($result);
/*
輸出結果
array(10) {
  [0]=>
  string(6) "你好嗎"
  [1]=>
  string(2) "?"
  [2]=>
  string(6) "我很好"
  [3]=>
  string(2) ","
  [4]=>
  string(6) "那你呢"
  [5]=>
  string(1) "?"
  [6]=>
  string(10) "有空再聊囉"
  [7]=>
  string(2) "。"
  [8]=>
  string(2) "掰"
  [9]=>
  string(1) "!"
}
*/
?>

你可以用 C# 改寫。

外獅佬 iT邦大師 1 級 ‧ 2012-08-09 00:12:36 檢舉

暈...這個帥氣.....哈哈

正所謂
RE寫得好,帥氣帥到老
拍手拍手拍手

4
timloo
iT邦研究生 2 級 ‧ 2012-08-09 09:36:15

這備例子蠻實用的,
剛好是逗點符號來斷句,
拿來做內部交流的例子(同事幾乎都是拿網路現成的樣式例子在用,這種例子,沒現成的樣式,但又不會太困難)
現實中,應該還會有一些space,tab,newline的分隔符號,
真是一個好例子,
用一般程式不好寫(string function) ,用正規式輕易就解決了!

匿名 檢舉

iT邦幫忙MVPwiseguy提到:
Regular Expression

如何使用正規式呢?

小成 iT邦高手 10 級 ‧ 2012-08-12 17:13:12 檢舉

我要發表回答

立即登入回答