正则表达式匹配到文本结尾

蒂姆

我正在使用正则表达式来匹配包含特定字符串的文本中的整个句子。只要句子以任何标点结尾,这都可以正常工作。但是,如果句子位于文本末尾且没有标点符号,则此方法不起作用。

这是我目前的表情:

 [^.?!]*(?<=[.?\s!])string(?=[\s.?!])[^.?!]*[.?!]

效劳于:

这是一个带字串的句子更多文字。

不适用于:

更多文字。这是一个带字串的句子

有什么办法使这个词符合预期吗?我找不到“文字结尾”的任何字符类。

伯爵

文本结尾由锚点$而不是字符类匹配

您需要解决两个单独的问题:(1)句子直接在字符串之后结束,以及(2)句子在字符串之后的某个时刻结束,但没有句尾标点符号。

为此,您需要在string可选项之后进行匹配,但是将匹配项锚定到字符串的末尾。这也意味着,在识别(可选的)句子结尾标点符号之后,您需要匹配其后的所有内容,因此字符串结尾锚点将匹配。

我的更改:将所有内容string放入原始正则表达式中,并放入其中(?:...)?-(?:...)作为一个“未被记住”的组,?并使整个组为可选。跟随$以锚定字符串的末尾。

在这一可选的组,你也需要做出最终的句子本身可选,通过更换简单[.?!](?:[.?!].*)?-一遍,(?:...)是做一个“非记忆”组中,?使得该组可选-和.*允许这找到句子结尾后,尽可能地匹配您想要的内容。

[^.?!]*(?<=[.?\s!])string(?:(?=[\s.?!])[^.?!]*(?:[.?!].*)?)?$

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式匹配以提取以空格结尾的文本

来自分类Dev

一种将文本匹配到多个正则表达式模式的快速方法

来自分类Dev

正则表达式匹配到'{'字符?

来自分类Dev

正则表达式从英镑符号匹配到行尾

来自分类Dev

正则表达式匹配到标准模式的末尾

来自分类Dev

将指定子字符串匹配到字符串结尾的正则表达式?

来自分类Dev

正则表达式-文本匹配

来自分类Dev

如何使用正则表达式使用正则表达式匹配以“ $”结尾的内容?

来自分类Dev

正则表达式匹配可以以不同的词结尾

来自分类Dev

正则表达式右匹配网址,以DOT结尾

来自分类Dev

定义正则表达式以匹配URL的结尾

来自分类Dev

正则表达式匹配以空格或逗号结尾的单词

来自分类Dev

正则表达式以匹配单词的结尾

来自分类Dev

正则表达式匹配以“ /”结尾的子组

来自分类Dev

正则表达式匹配 URL 的结尾

来自分类Dev

正则表达式模式以匹配以 # 或 > 结尾的名称

来自分类Dev

Notepad ++正则表达式结尾

来自分类Dev

正则表达式结尾

来自分类Dev

句子结尾的正则表达式

来自分类Dev

正则表达式匹配多行括号中的文本

来自分类Dev

如何返回与某些文本匹配的正则表达式?

来自分类Dev

使用正则表达式匹配文本行

来自分类Dev

Javascript正则表达式:模式后匹配文本

来自分类Dev

在正则表达式中查找匹配的文本

来自分类Dev

正则表达式以匹配逗号之间的文本

来自分类Dev

正则表达式:文本周围的匹配格式;

来自分类Dev

使用XSLT标记匹配正则表达式的文本?

来自分类Dev

正则表达式以匹配自定义文本

来自分类Dev

Python正则表达式与某些文本不匹配

Related 相关文章

热门标签

归档