我有一个 HTML 文档,我需要能够在文档文本中找到可能包含或不包含连字符的完全匹配项。我正在使用 Java 和 Jsoup。
例如,HTML 文档可以包含以下内容:
<li>some text ABCDE some text</li>
<li>some text ABCDE-kriterierna some text</li>
或
<li>ABCDE</li>
<li>ABCDE-kriterierna</li>
我有一个输入字符串列表,我需要将其与 HTML 文档中的文本相匹配。其中两个输入字符串可以是“ABCDE”和“ABCDE-kriterierna”。 我需要一种使用 Jsoup 或正则表达式的方法来精确匹配这些输入词。也就是说,“ABCDE-kriterierna”应该只找到第二个列表元素,而不是第一个。并且输入单词“ABCDE”应该只能找到第一个列表元素,而不是第二个。
输入单词“ABCDE-kriterierna”没问题。这个 Jsoup CSS 选择器只会找到第二个列表元素:
:containsOwn(ABCDE-kriterierna)
问题是我找不到用于输入单词“ABCDE”的正则表达式/选择器,只能找到第一个列表元素。我不能使用正则表达式 \sABCDE\s
因为我不能假设周围的空间。
我尝试了以下方法,但都找到了“ABCDE-kriterierna”。
:matchesOwn(\bABCDE\b)
:containsOwn(ABCDE)
有什么想法吗?请帮助...
最佳答案
I can't assume surrounding spaces since ABCDE could be the only text in an element
请记住上述情况,发生这种情况有两种情况。
ABCDE
是一个被空格包围的词。例如:<li>some text ABCDE some text</li>
ABCDE
只是列表标记中没有空格的单词。例如:<li>ABCDE</li>
正则表达式: (?<=[>\s])ABCDE(?=[<\s])
解释:
(?<=[>\s])
会回头寻找>
(li 标签的闭合 Angular )或 \s
一个空格。
ABCDE
将搜索字面词。
(?=[<\s])
将向前看 <
(li 标签的张 Angular )或 \s
一个空格。
关于java - 使用 jsoup 在 html 中查找包含连字符的确切文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43564655/