Пример #1
0
    def test_03(self):
        rstr = "asdf"
        rstr_right_bounded = RegexTool.rstr2right_bounded(
            rstr, RegexTool.right_wordbounds())
        self.assertTrue(re.search(rstr_right_bounded, "ijilijasdf"))
        self.assertFalse(re.search(rstr_right_bounded, "asdfuhuef"))

        rstr_left_bounded = RegexTool.rstr2left_bounded(
            rstr, RegexTool.left_wordbounds())
        self.assertFalse(re.search(rstr_left_bounded, "ijilijasdf"))
        self.assertTrue(re.search(rstr_left_bounded, "asdfuhuef"))
Пример #2
0
    def pattern_number(cls):
        rstr_leftbound = RegexTool.rstr2left_bounded(
            r"\d{1,2}", RegexTool.left_wordbounds())

        rstr_bound_right_list = lchain(
            RegexTool.right_wordbounds(),
            lchain(*TimedeltaEntityUnit.gazetteer_all().values()),
        )
        rstr_bound = RegexTool.rstr2right_bounded(rstr_leftbound,
                                                  rstr_bound_right_list)
        return re.compile(rstr_bound, re.I)
Пример #3
0
    def pattern_suffix(cls):

        left_bounds = RegexTool.left_wordbounds()
        right_bounds = lchain(
            RegexTool.right_wordbounds(),
            [
                RegexTool.bound2prefixed(b, r"시")
                for b in RegexTool.right_wordbounds()
            ],
        )

        rstr_rightbounded = RegexTool.rstr2right_bounded(r"\d+", right_bounds)

        def bound_iter_left():
            b_list_raw = RegexTool.left_wordbounds()
            for b in b_list_raw:
                yield b
                yield r"{}{}".format(b, r"{1,2}")

        bound_list_left = list(bound_iter_left())
        rstr_bound = RegexTool.rstr2left_bounded(rstr_rightbound,
                                                 bound_list_left)

        return re.compile(rstr_bound)