如标题所示,我需要从字符串中获取 X 个字符,但 HTML 不包括在计数中。
示例字符串
Some <i>t</i>est <b>string</b> test
会输出9个字符
Some <i>t</i>est
输出13个字符
Some <i>t</i>est <b>str
输出19个字符
Some <i>t</i>est <b>string</b> te
我不太确定从基础到哪里
(.*?){0,10}
另外,有没有办法制作 HTML 编码的字符,例如<
算作一个字符?
最佳答案
要匹配字符串中一定数量的字符,首先要排除子字符串,如 <...>
从计数和计数&XX*;
实体作为一个单元,你可以使用
^(?:&[^\s;]*;|(?:<[^<>]*>)*.){20}
参见 regex demo .
详情
-
^
- 字符串开始 -
(?:
- 开始一个非捕获组,它将作为以下替代方案的容器:-
&[^\s;]*;
- 一个&
, 0 个或多个除空格和;
以外的字符然后;
-
|
- 或者 -
(?:<[^<>]*>)*.
-<
的 0 次或多次重复, 除<
以外的 0+ 个字符和>
然后>
, 然后是换行符以外的任何字符(使用 DOTALL 修饰符将任何字符与.
匹配)
-
-
){20}
- 容器组的结尾和限制量词告诉引擎匹配其模式的 20 次连续出现。
关于javascript - 正则表达式 - 从字符串中获取 x 个字符,但 html 标签不计入计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53374009/