我试图提取出现在标点符号之前的短语,但它的形式是短语中的大写单词。
抽象代数.现代数学领域,认为代数结构是具有运算的集合,并将通常与实数系统相关联的代数概念推广到其他更一般的系统,如群、环、域、模和向量空间。 代数:数学的一个分支,它使用符号或字母来表示变量、值或数字,然后可以用来表示运算和关系以及求解方程。 代数表达式.一种数字和字母的组合,相当于语言中的短语,例如x2 +3x-4。 分析(笛卡尔)几何学:利用坐标系统和代数分析原理研究几何,从而定义几何形状,并从表示中提取数值信息。 归纳推理或逻辑:推理的一种类型,它涉及从一组具体的事实转移到一个一般的结论,表示对结论的某种程度的支持,而没有实际确保其真实性。
目前,我正在使用以下正则表达式:
(([? ])([A-Z][a-z\s]+)?([A-Z][a-z\s]+?[.:]))我对此有两个问题。
发布于 2019-09-04 09:06:56
发布于 2019-09-04 09:59:32
对当前数据不匹配超过一个单词的原因之一是模式以[? ]开头,它将匹配空格或问号。
您还可以省略一些捕获组,并使用单个组。请注意,您不必使用[a-z\s]+?[.:]使此匹配不贪婪,因为字符类不包含.或:
要获得大写单词后面的.或:,您可以使用:
\b([A-Z][a-z]+(?:\s+[A-Z][a-z]+)*)[.:]解释
\b字界( Capture group 1 [A-Z][a-z]+(?:\s+[A-Z][a-z]+)*重复0+倍匹配and和1+倍A-Z
)紧群[.:]匹配.或:如果您还想匹配由(和)包围的单词,则可以使用替换。
\b((?:\([A-Z][a-z]+\)|[A-Z][a-z]+)(?:\s+(?:\([A-Z][a-z]+\)|[A-Z][a-z]+))*)[.:]https://stackoverflow.com/questions/57785009
复制相似问题