Softanza
StartFrançais
Softanza
Reference · stzString

Sentences()

UAX#29 sentence segmentation (engine-backed), aligned with NumberOfSentences() -- correctly keeps "Dr. Smith", "3.14", "U.S.A." as one sentence rather than splitting on every '.'. Bulk native-list bridge (O(n)).

Basic examples (2)

Softanza
o1 = new stzString("The fox ran fast. Dr. Smith paid $3.14 today. It works.")
# three sentences, not split on 'Dr.' or '3.14'
? o1.NumberOfSentences()
# Sentences() list agrees with the count
? len(o1.Sentences())
# the middle sentence stays intact
? o1.NthSentence(2)
Output
3
3
Dr. Smith paid $3.14 today.

run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from text_query_layer_narrated.ring(opens in a new tab)

Softanza
o1 = new stzString("I love this wonderful product. The service was terrible and slow. It is a plain wooden chair.")
# SentencesQ() is the BASIC object (stzList)
? classname(o1.SentencesQ())
# SentencesQQ() is the first secondary type (stzListOfStrings)
? classname(o1.SentencesQQ())
# SentencesQQQ() is the most specific (stzListOfTexts)
? classname(o1.SentencesQQQ())
# MostSimilarByMeaning (a natural op) picks the closest sentence
? o1.SentencesQQQ().MostSimilarByMeaning("bad slow service")
# ThatAre filters sentences by sentiment
? @@(o1.SentencesQQQ().ThatAre("positive"))
# chain ThatAreQ -> Joined stays fluent
? o1.SentencesQQQ().ThatAreQ("positive").Joined()
# ThatContain (lexical) filters by substring
? @@(o1.SentencesQQ().ThatContain("chair"))
# NthString on the stzListOfStrings rung
? o1.SentencesQQ().NthString(2)
# WordsQ() is the BASIC object (stzList)
? classname(o1.WordsQ())
# WordsQQ().MostSimilarTo fuzzy-matches a typo (Jaro-Winkler)
? o1.WordsQQ().MostSimilarTo("wonderfull")
Output
stzlist
stzlistofstrings
stzlistoftexts
The service was terrible and slow.
[ "I love this wonderful product." ]
I love this wonderful product.
[ "It is a plain wooden chair." ]
The service was terrible and slow.
stzlist
wonderful

run on 2026-10-02 04:23 inside the library at commit 0e72e2e2c; taken from text_query_layer_narrated.ring(opens in a new tab)

The extensions of this method

Each extension, and whether it exists for this method; an extension that exists combines with the others (FindSTCS).

Extension
Exists
What it adds · The names
Q
yes
does what the method does, then returns the object, so the call can be chained · SentencesQ
QQ
yes
chains on the next, more specific type of object (the Q ladder) · SentencesQQ
QQQ
yes
chains on the most specific type of object (the Q ladder) · SentencesQQQ
QRT
no
returns the result as an object of the requested type
CS
no
takes a case-sensitivity flag
ST
no
takes the position to start from (StartingAt)
IB
no
takes bounds that are included (IncludingBounds)
XT
no
the extended form: more parameters than the base method
XTT
no
yet another extension: a further extended form, after XT
Z
no
includes the position in what it returns
ZZ
no
returns positions as sections, [start, end]
W
no
selects by a condition
WF
no
selects by a condition, with the expressive keywords (@NextItem, @PreviousItem...)
D
no
takes a direction, forward or backward (Directional)
F
no
takes a function (the condition or the update is given as a function); the forms document also uses F for the future form, which defers the action
Many
no
works on a collection of items instead of one (the plural form)
Except
no
takes exceptions, what to leave out (the exceptional form)
U
no
returns the result without duplication

Every example is a test file of the library, run inside the library for this page; only those whose output kept every promise their file wrote are shown.

See also