@echogarden/text-segmentation 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exports/Exports.d.ts +3 -0
- package/dist/exports/Exports.d.ts.map +1 -0
- package/dist/exports/Exports.js +3 -0
- package/dist/exports/Exports.js.map +1 -0
- package/dist/patterns/EastAsianCharacterPatterns.d.ts.map +1 -0
- package/dist/patterns/EastAsianCharacterPatterns.js.map +1 -0
- package/dist/{Patterns.d.ts → patterns/Patterns.d.ts} +1 -0
- package/dist/patterns/Patterns.d.ts.map +1 -0
- package/dist/{Patterns.js → patterns/Patterns.js} +9 -8
- package/dist/patterns/Patterns.js.map +1 -0
- package/dist/patterns/Suppressions.d.ts.map +1 -0
- package/dist/patterns/Suppressions.js.map +1 -0
- package/dist/{TextSegmentation.d.ts → segmentation/TextSegmentation.d.ts} +0 -1
- package/dist/segmentation/TextSegmentation.d.ts.map +1 -0
- package/dist/segmentation/TextSegmentation.js +575 -0
- package/dist/segmentation/TextSegmentation.js.map +1 -0
- package/dist/segmentation/WordSequence.d.ts.map +1 -0
- package/dist/segmentation/WordSequence.js.map +1 -0
- package/dist/tests/Test.d.ts.map +1 -0
- package/dist/{Test.js → tests/Test.js} +7 -5
- package/dist/tests/Test.js.map +1 -0
- package/dist/utilities/Timer.d.ts +7 -3
- package/dist/utilities/Timer.d.ts.map +1 -1
- package/dist/utilities/Timer.js +41 -39
- package/dist/utilities/Timer.js.map +1 -1
- package/package.json +7 -7
- package/src/exports/Exports.ts +2 -0
- package/src/{Patterns.ts → patterns/Patterns.ts} +11 -10
- package/src/segmentation/TextSegmentation.ts +743 -0
- package/src/{Test.ts → tests/Test.ts} +7 -5
- package/src/utilities/Timer.ts +50 -48
- package/dist/EastAsianCharacterPatterns.d.ts.map +0 -1
- package/dist/EastAsianCharacterPatterns.js.map +0 -1
- package/dist/Patterns.d.ts.map +0 -1
- package/dist/Patterns.js.map +0 -1
- package/dist/Suppressions.d.ts.map +0 -1
- package/dist/Suppressions.js.map +0 -1
- package/dist/Test.d.ts.map +0 -1
- package/dist/Test.js.map +0 -1
- package/dist/TextSegmentation.d.ts.map +0 -1
- package/dist/TextSegmentation.js +0 -364
- package/dist/TextSegmentation.js.map +0 -1
- package/dist/WordSequence.d.ts.map +0 -1
- package/dist/WordSequence.js.map +0 -1
- package/src/TextSegmentation.ts +0 -520
- /package/dist/{EastAsianCharacterPatterns.d.ts → patterns/EastAsianCharacterPatterns.d.ts} +0 -0
- /package/dist/{EastAsianCharacterPatterns.js → patterns/EastAsianCharacterPatterns.js} +0 -0
- /package/dist/{Suppressions.d.ts → patterns/Suppressions.d.ts} +0 -0
- /package/dist/{Suppressions.js → patterns/Suppressions.js} +0 -0
- /package/dist/{WordSequence.d.ts → segmentation/WordSequence.d.ts} +0 -0
- /package/dist/{WordSequence.js → segmentation/WordSequence.js} +0 -0
- /package/dist/{Test.d.ts → tests/Test.d.ts} +0 -0
- /package/src/{EastAsianCharacterPatterns.ts → patterns/EastAsianCharacterPatterns.ts} +0 -0
- /package/src/{Suppressions.ts → patterns/Suppressions.ts} +0 -0
- /package/src/{WordSequence.ts → segmentation/WordSequence.ts} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { addMissingPunctuationWordsToWordSequence, segmentText, segmentWordSequence, splitToWords, WordSequence } from
|
|
2
|
-
import { Timer } from
|
|
1
|
+
import { addMissingPunctuationWordsToWordSequence, segmentText, segmentWordSequence, splitToWords, WordSequence } from '../exports/Exports.js';
|
|
2
|
+
import { Timer } from '../utilities/Timer.js';
|
|
3
3
|
const log = console.log;
|
|
4
4
|
async function test1() {
|
|
5
5
|
//const text = 'Hello! 1. Say who? 2. How are you? This is v2.0 that good. I have 2 344 234ms C# is good games'
|
|
@@ -100,17 +100,19 @@ This A.I. techonology, tells the Dr. goodbye and nothing else. Yes.
|
|
|
100
100
|
街の
|
|
101
101
|
`;
|
|
102
102
|
const text2 = `
|
|
103
|
-
Hello World. Yo!
|
|
104
103
|
|
|
105
104
|
|
|
105
|
+
Hello World. Yo!
|
|
106
|
+
\t
|
|
107
|
+
|
|
106
108
|
gooooogoo
|
|
107
109
|
|
|
108
110
|
, Hi. BOBO.
|
|
109
111
|
`;
|
|
110
|
-
const wordSequence = await splitToWords(
|
|
112
|
+
const wordSequence = await splitToWords(text2, { language: 'en' });
|
|
111
113
|
const result = await segmentWordSequence(wordSequence);
|
|
112
114
|
const sentencesText = result.sentences.map(x => x.text);
|
|
113
|
-
log(sentencesText.join('
|
|
115
|
+
log(sentencesText.join(' | '));
|
|
114
116
|
}
|
|
115
117
|
//test1()
|
|
116
118
|
//test2()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Test.js","sourceRoot":"","sources":["../../src/tests/Test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wCAAwC,EAA2C,WAAW,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACvL,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAE7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;AAEvB,KAAK,UAAU,KAAK;IACnB,+GAA+G;IAC/G,MAAM,IAAI,GAAG,8CAA8C,CAAA;IAC3D,iEAAiE;IAEjE,MAAM,OAAO,GAAwB;QACpC,QAAQ,EAAE,IAAI;KACd,CAAA;IAED,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAEtD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAA;IAEnD,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,CAAA;IAE7D,MAAM,CAAC,GAAG,CAAC,CAAA;AACZ,CAAC;AAED,KAAK,UAAU,KAAK;IACnB,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;IAC1D,MAAM,IAAI,GAAG,YAAY,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAA;IAE7D,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;IAEzB,IAAI,MAA0B,CAAA;IAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE;YAChC,QAAQ,EAAE,IAAI;YACd,kBAAkB,EAAE,EAAE;YACtB,6BAA6B,EAAE,IAAI;SACnC,CAAC,CAAA;QAEF,KAAK,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAA;IAC5C,CAAC;IAED,GAAG,CAAC,EAAE,CAAC,CAAA;IAEP,EAAE;IAEF,IAAI,aAAa,GAAG,EAAE,CAAA;IAEtB,KAAK,IAAI,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,MAAO,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC;QACvF,MAAM,QAAQ,GAAG,MAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;QAEhC,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC;YACvE,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;YAEnC,aAAa,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAEnD,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,aAAa,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAA;YAC1C,CAAC;QACF,CAAC;QAED,IAAI,aAAa,GAAG,MAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,aAAa,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAA;QAC3C,CAAC;IACF,CAAC;IAED,aAAa,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAA;AAClD,CAAC;AAED,KAAK,UAAU,KAAK;IACnB,MAAM,IAAI,GAAG,mDAAmD,CAAA;IAEhE,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAA;IAEtC,MAAM,yBAAyB,GAAG,KAAK,CAAC,qBAAqB,CAAA;IAC7D,MAAM,0BAA0B,GAAG,IAAI,YAAY,EAAE,CAAA;IACrD,0BAA0B,CAAC,OAAO,GAAG,yBAAyB,CAAA;IAE9D,MAAM,aAAa,GAAG,wCAAwC,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAA;IAEhG,MAAM,CAAC,GAAG,CAAC,CAAA;AACZ,CAAC;AAED,KAAK,UAAU,KAAK;IACnB,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Bb,CAAA;IAEA,MAAM,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IACnD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;AACxB,CAAC;AAGD,KAAK,UAAU,KAAK;IACnB,MAAM,KAAK,GAAG;;;;;;;;;;CAUd,CAAA;IAEA,MAAM,KAAK,GAAG;;;;;;;;;CASd,CAAA;IAEA,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAElE,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,CAAA;IAEtD,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAEvD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;AAC/B,CAAC;AAED,SAAS;AACT,SAAS;AACT,KAAK,EAAE,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare class Timer {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
private readonly logger;
|
|
3
|
+
private startTime;
|
|
4
|
+
constructor(logger?: TimerLogger);
|
|
4
5
|
restart(): void;
|
|
5
6
|
get elapsedTime(): number;
|
|
6
7
|
get elapsedTimeSeconds(): number;
|
|
@@ -8,7 +9,10 @@ export declare class Timer {
|
|
|
8
9
|
logAndRestart(title: string, timePrecision?: number): number;
|
|
9
10
|
static get currentTime(): number;
|
|
10
11
|
static get microsecondTimestamp(): number;
|
|
11
|
-
private static createGlobalTimestampFunction;
|
|
12
12
|
private static timestampFunc;
|
|
13
|
+
private static createTimestampFunction;
|
|
13
14
|
}
|
|
15
|
+
export declare function roundToDigits(value: number, digits: number): number;
|
|
16
|
+
type TimerLogger = (msg: string) => void;
|
|
17
|
+
export {};
|
|
14
18
|
//# sourceMappingURL=Timer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timer.d.ts","sourceRoot":"","sources":["../../src/utilities/Timer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Timer.d.ts","sourceRoot":"","sources":["../../src/utilities/Timer.ts"],"names":[],"mappings":"AAAA,qBAAa,KAAK;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,OAAO,CAAC,SAAS,CAAI;IAErB,YAAY,MAAM,CAAC,EAAE,WAAW,EAQ/B;IAGD,OAAO,IAAI,IAAI,CAEd;IAGD,IAAI,WAAW,IAAI,MAAM,CAExB;IAGD,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAGD,wBAAwB,IAAI,MAAM,CAKjC;IAGD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,SAAI,GAAG,MAAM,CAMtD;IAGD,MAAM,KAAK,WAAW,IAAI,MAAM,CAE/B;IAGD,MAAM,KAAK,oBAAoB,IAAI,MAAM,CAExC;IAGD,OAAO,CAAC,MAAM,CAAC,aAAa,CAAgD;IAE5E,OAAO,CAAC,MAAM,CAAC,uBAAuB;CA4BtC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAInE;AAED,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA"}
|
package/dist/utilities/Timer.js
CHANGED
|
@@ -1,70 +1,72 @@
|
|
|
1
|
-
import { roundToDigits } from "./Utilities.js";
|
|
2
1
|
export class Timer {
|
|
2
|
+
logger;
|
|
3
3
|
startTime = 0;
|
|
4
|
-
constructor() {
|
|
4
|
+
constructor(logger) {
|
|
5
|
+
if (logger) {
|
|
6
|
+
this.logger = logger;
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
this.logger = console.log;
|
|
10
|
+
}
|
|
5
11
|
this.restart();
|
|
6
12
|
}
|
|
13
|
+
// Resets the timer to the current time.
|
|
7
14
|
restart() {
|
|
8
15
|
this.startTime = Timer.currentTime;
|
|
9
16
|
}
|
|
17
|
+
// Elapsed time in milliseconds (monotonic where supported).
|
|
10
18
|
get elapsedTime() {
|
|
11
|
-
// Elapsed time (milliseconds)
|
|
12
19
|
return Timer.currentTime - this.startTime;
|
|
13
20
|
}
|
|
21
|
+
// Elapsed time in seconds.
|
|
14
22
|
get elapsedTimeSeconds() {
|
|
15
|
-
// Elapsed time (seconds)
|
|
16
23
|
return this.elapsedTime / 1000;
|
|
17
24
|
}
|
|
25
|
+
// Returns elapsed ms and restarts the timer.
|
|
18
26
|
getElapsedTimeAndRestart() {
|
|
19
|
-
const
|
|
27
|
+
const elapsed = this.elapsedTime;
|
|
20
28
|
this.restart();
|
|
21
|
-
return
|
|
29
|
+
return elapsed;
|
|
22
30
|
}
|
|
31
|
+
// Logs elapsed time (in ms) and restarts the timer.
|
|
23
32
|
logAndRestart(title, timePrecision = 3) {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
const message = `${title}: ${roundToDigits(elapsedTime, timePrecision)}ms`;
|
|
27
|
-
console.log(message);
|
|
28
|
-
//
|
|
33
|
+
const elapsedMs = this.elapsedTime;
|
|
34
|
+
this.logger(`${title}: ${roundToDigits(elapsedMs, timePrecision)}ms`);
|
|
29
35
|
this.restart();
|
|
30
|
-
return
|
|
36
|
+
return elapsedMs;
|
|
31
37
|
}
|
|
38
|
+
// Current high-resolution timestamp in milliseconds since Unix epoch.
|
|
32
39
|
static get currentTime() {
|
|
33
|
-
if (!this.timestampFunc) {
|
|
34
|
-
this.createGlobalTimestampFunction();
|
|
35
|
-
}
|
|
36
40
|
return this.timestampFunc();
|
|
37
41
|
}
|
|
42
|
+
// Current timestamp in microseconds (integer).
|
|
38
43
|
static get microsecondTimestamp() {
|
|
39
44
|
return Math.floor(Timer.currentTime * 1000);
|
|
40
45
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
baseTimestamp = Date.now() - this.timestampFunc();
|
|
46
|
+
// Clock setup
|
|
47
|
+
static timestampFunc = Timer.createTimestampFunction();
|
|
48
|
+
static createTimestampFunction() {
|
|
49
|
+
const g = globalThis;
|
|
50
|
+
// 1. Modern standard: performance.now() (Browsers & Node 16+)
|
|
51
|
+
if (typeof g.performance === 'object' && typeof g.performance.now === 'function') {
|
|
52
|
+
const timeOrigin = g.performance.timeOrigin ?? (Date.now() - g.performance.now());
|
|
53
|
+
return () => timeOrigin + g.performance.now();
|
|
50
54
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
// 2. Node.js high resolution timer (BigInt variant, Node 10.4+)
|
|
56
|
+
if (typeof g.process === 'object' && typeof g.process.hrtime === 'function') {
|
|
57
|
+
const startNs = g.process.hrtime.bigint();
|
|
58
|
+
const epochBaseMs = Date.now() - (Number(startNs) / 1e6);
|
|
59
|
+
return () => epochBaseMs + Number(g.process.hrtime.bigint()) / 1e6;
|
|
56
60
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
else if (Date.now) {
|
|
62
|
-
this.timestampFunc = () => Date.now();
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
this.timestampFunc = () => (new Date()).getTime();
|
|
61
|
+
// 3. Last-resort fallback (non-monotonic)
|
|
62
|
+
if (typeof Date.now === 'function') {
|
|
63
|
+
return () => Date.now();
|
|
66
64
|
}
|
|
65
|
+
return () => new Date().getTime();
|
|
67
66
|
}
|
|
68
|
-
|
|
67
|
+
}
|
|
68
|
+
export function roundToDigits(value, digits) {
|
|
69
|
+
const factor = 10 ** digits;
|
|
70
|
+
return Math.round(value * factor) / factor;
|
|
69
71
|
}
|
|
70
72
|
//# sourceMappingURL=Timer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timer.js","sourceRoot":"","sources":["../../src/utilities/Timer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Timer.js","sourceRoot":"","sources":["../../src/utilities/Timer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@echogarden/text-segmentation",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "A library for multilingual word, phrase and sentence segmentation.",
|
|
5
5
|
"author": "Rotem Dan",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"bugs": {
|
|
24
24
|
"url": "https://github.com/echogarden-project/text-segmentation/issues"
|
|
25
25
|
},
|
|
26
|
-
"main": "./dist/
|
|
26
|
+
"main": "./dist/exports/Exports.js",
|
|
27
27
|
"type": "module",
|
|
28
28
|
"files": [
|
|
29
29
|
"dist",
|
|
@@ -33,13 +33,13 @@
|
|
|
33
33
|
"README.md"
|
|
34
34
|
],
|
|
35
35
|
"scripts": {
|
|
36
|
-
"test": "node dist/Test.js"
|
|
36
|
+
"test": "node dist/tests/Test.js"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"regexp-composer": "~0.
|
|
39
|
+
"regexp-composer": "~0.6.0"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@echogarden/icu-segmentation-wasm": "~0.
|
|
42
|
+
"@echogarden/icu-segmentation-wasm": "~0.4.0"
|
|
43
43
|
},
|
|
44
44
|
"peerDependenciesMeta": {
|
|
45
45
|
"@echogarden/icu-segmentation-wasm": {
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@types/node": "~26.
|
|
51
|
-
"@echogarden/icu-segmentation-wasm": "~0.
|
|
50
|
+
"@types/node": "~26.4.0",
|
|
51
|
+
"@echogarden/icu-segmentation-wasm": "~0.4.0"
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -54,6 +54,15 @@ const currencyCharacters = ['$', '¥', '€', '£', '₩', '₭', '₽', '₫',
|
|
|
54
54
|
|
|
55
55
|
const percentageOrCurrencyCharacterPattern = anyOf(...percentageCharacters, ...currencyCharacters)
|
|
56
56
|
|
|
57
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
58
|
+
// Whitespace patterns
|
|
59
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
60
|
+
|
|
61
|
+
export const whitespacePattern = [inputStart, oneOrMore(whitespace), inputEnd]
|
|
62
|
+
export const startsWithWhitespacePattern = [inputStart, whitespace]
|
|
63
|
+
export const endsWithWhitespacePattern = [whitespace, inputEnd]
|
|
64
|
+
export const anyNumberOfSpacesPattern = [inputStart, oneOrMore(' '), inputEnd]
|
|
65
|
+
|
|
57
66
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
58
67
|
// Numeric patterns
|
|
59
68
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
@@ -288,7 +297,7 @@ const phraseSeparatorPattern = [
|
|
|
288
297
|
|
|
289
298
|
const phraseSeparatorTrailingPunctuationPattern = [
|
|
290
299
|
inputStart,
|
|
291
|
-
anyOf(...phraseSeparatorCharacters,
|
|
300
|
+
anyOf(...phraseSeparatorCharacters, anyNumberOfSpacesPattern, tab),
|
|
292
301
|
inputEnd
|
|
293
302
|
]
|
|
294
303
|
|
|
@@ -305,18 +314,10 @@ const sentenceSeparatorCharacterPattern = [
|
|
|
305
314
|
|
|
306
315
|
const sentenceSeparatorTrailingPunctuationPattern = [
|
|
307
316
|
inputStart,
|
|
308
|
-
anyOf('"', '”', '’', ')', ']', '}', '»', '」', ...sentenceSeparatorCharacters, ...phraseSeparatorCharacters,
|
|
317
|
+
anyOf('"', '”', '’', ')', ']', '}', '»', '」', ...sentenceSeparatorCharacters, ...phraseSeparatorCharacters, whitespacePattern),
|
|
309
318
|
inputEnd
|
|
310
319
|
]
|
|
311
320
|
|
|
312
|
-
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
313
|
-
// Other patterns
|
|
314
|
-
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
315
|
-
|
|
316
|
-
export const whitespacePattern = [inputStart, oneOrMore(whitespace), inputEnd]
|
|
317
|
-
export const startsWithWhitespacePattern = [inputStart, whitespace]
|
|
318
|
-
export const endsWithWhitespacePattern = [whitespace, inputEnd]
|
|
319
|
-
|
|
320
321
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
321
322
|
// Prebuilt regular expressions
|
|
322
323
|
////////////////////////////////////////////////////////////////////////////////////////////////
|