Index: source/data/brkitr/rules/word.txt |
diff --git a/source/data/brkitr/rules/word.txt b/source/data/brkitr/rules/word.txt |
index aa7c47c8095d7ef73e20b5a52f814c6ce8246259..9c93dd51e4683d92e01e38b58f86bce91e51733c 100644 |
--- a/source/data/brkitr/rules/word.txt |
+++ b/source/data/brkitr/rules/word.txt |
@@ -39,10 +39,16 @@ $Hebrew_Letter = [\p{Word_Break = Hebrew_Letter}]; |
$ALetter = [\p{Word_Break = ALetter}]; |
$Single_Quote = [\p{Word_Break = Single_Quote}]; |
$Double_Quote = [\p{Word_Break = Double_Quote}]; |
-$MidNumLet = [\p{Word_Break = MidNumLet}]; |
+# Remove two full stop characters from $MidNumLet and add them to $MidNum |
+# to break a hostname into its components at the cost of breaking |
+# 'e.g.' and 'i.e.' as well. |
+# $MidNumLet is used in rules 6/7 (rules of our interest) and rules 11/12. |
+# Because it's OR'd with $MidNum in rules 11/12, rules 11/12 are not affected |
+# while rules 6/7 are reverted to the old behavior we want. |
+$MidNumLet = [[\p{Word_Break = MidNumLet}] - [\u002E \uFF0E]]; |
$MidLetter = [\p{Word_Break = MidLetter}]; |
-$MidNum = [\p{Word_Break = MidNum}]; |
-$Numeric = [\p{Word_Break = Numeric}]; |
+$MidNum = [\p{Word_Break = MidNum}[\u002E \uFF0E]]; |
+$Numeric = [\p{Word_Break = Numeric}[\uff10-\uff19]]; #includes fullwidth digits |
$ExtendNumLet = [\p{Word_Break = ExtendNumLet}]; |
$E_Base = [\p{Word_Break = EB}\U0001F3C2\U0001F3C7\U0001F3CC\U0001F46A-\U0001F46D\U0001F46F\U0001F574\U0001F6CC]; |
$E_Modifier = [\p{Word_Break = EM}]; |